在ListView中的项目上设置边距

| 问题 我正在尝试创建一个ListView,您可以在其中通过拖动来对项目进行重新排序。 这涉及隐藏从列表中拖动的项目,但是无法完全隐藏项目(将高度设置为0或将可见性设置为GONE不会执行任何操作),因此我将可见性设置为INVISIBLE并将高度设置为1,但是当然,在拖动时会引起小的跳跃。 解 为了解决这个问题,我的目标是在商品上设置负边距,将其拉高一个像素。 但是,问题来了,您无法在通用视图上设置边距,或者无法在代码中进行设置。 您可以在XML中设置一个边距,它可以很好地工作,但在代码中则不能,这有什么办法吗?     
已邀请:
        若要在代码中为视图设置边距,请将其设置为
LayoutParms
。例如:
View v; // let\'s guess you have this view... then
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) v.getLayoutParams();
layoutParams.setMargins(1, 2, 3, 4);
LinearLayout
内的视图中正常工作。您可以通过这种方式进行操作,或者:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(etc..);
layoutParams.setMargins(1, 2, 3, 4);
parent.addView(view, layoutParams);
    
        我最终使用了包装器作为适配器。 适配器为我移动\“孔\”,而不是为拖动的视图留出空间。 由于边距在android中不能很好地工作,因此我不希望使用这些边距,而padding仍会留下1px的微小跳动,我认为适配器是唯一好的解决方案。     
        根据我的经验,我认为嵌入式LinearLayout是一种可接受的解决方案,而不是理想的解决方案,因为它可能会导致性能方面的透支问题。但它可用。
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"match_parent\"
    android:layout_height=\"wrap_content\"
    android:orientation=\"horizontal\"
    android:padding=\"@dimen/list_item_surrounding_pad\" >

    <LinearLayout
        android:layout_width=\"match_parent\"
        android:layout_height=\"wrap_content\"
        android:background=\"@color/module_entry_settings_item_background\"
        android:orientation=\"horizontal\"
        android:soundEffectsEnabled=\"true\" >

        <ImageView
            android:id=\"@+id/list_item_document_source_image\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\" >
        </ImageView>

        <TextView
            android:id=\"@+id/list_item_document_source_title\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:layout_gravity=\"center_vertical\"
            android:gravity=\"center_vertical\"
            android:minHeight=\"?android:attr/listPreferredItemHeight\"
            android:soundEffectsEnabled=\"true\"
            android:textAppearance=\"?android:attr/textAppearanceLarge\"
            android:textSize=\"@dimen/drawer_text_font_size\" />
    </LinearLayout>

</LinearLayout>
    

要回复问题请先登录注册