这是我的每行代码的代码。
Worksheet_BeforeDoubleClick
如你所见,我有边距设置,如果我检查预览,它也会显示。
我填充了这个listivew膨胀。 这是activity_sladice.xml。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="120dp"
android:id="@+id/recipe_container"
android:layout_margin="12dp"
android:background="#f1f1f1">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/recipe_name_text_view"
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:textSize="32sp"
android:text="DUMMY TEXT"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/recipe_time_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DUMMY TEXT"/>
<TextView
android:id="@+id/recipe_difficulty_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DUMMY TEXT"/>
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/recipe_thumbnail_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/sladice"/>
</LinearLayout>
现在每一行都在一起,左,右,底,顶之间没有间距。
如果我向listview添加边距或填充,它只适用于整个列表,而不是每行。
怎么做?我知道我可以在每一行之间添加分隔符,但我也想要左右间距。
这是来自自定义适配器的getView方法。
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/recipe_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.android.recepti.Sladice"
android:background="@color/colorPrimary">
</ListView>
答案 0 :(得分:0)
如果要向ListView添加边距,请在列表视图中添加边距。 如果要为项添加边距,请为项添加边距。
很简单。
但是,我建议您使用ConstraintLAyout。和RecyclerView而不是ListView。
答案 1 :(得分:0)
尝试在LinearLayout中使用填充,并创建另一个LinearLayout作为原始子项,并将background属性移动到它。
答案 2 :(得分:0)
尝试使用以下方法在getView方法中以编程方式设置margin。
public static void setMarginLeft(View v, int left) {
ViewGroup.MarginLayoutParams params =
(ViewGroup.MarginLayoutParams)v.getLayoutParams();
params.setMargins(left, params.topMargin,
params.rightMargin, params.bottomMargin);
}