我在Android中创建了一个带有一些任意元素的ListView。 行布局从XML文件中膨胀。一切正常,但默认情况下每行都添加了额外保证金底部,我从未在任何地方提到过。
我故意将 ListView背景设置为绿色,将行背景设置为蓝色,将 RelativeLayout背景设置为红色。结果是每行都有 1 / 1.5 DP 边距底部。
这里绿色边框实际上是ListView的背景颜色,表明两行之间有一些差距。
这是Android ListView中的预期行为,如果是这样,为什么他们会自动将保证金底部添加到行? 以及如何消除/克服这种行为?
谢谢你,祝你有愉快的一天< 3
截图 -
MainActivity.java
package com.xxx.abcd;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends AppCompatActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] num = {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve"};
ListView lv = (ListView) findViewById(R.id.lv);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, R.layout.row, num);
lv.setAdapter(arrayAdapter);
}
}
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"
tools:context="com.xxx.abcd.MainActivity">
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00">
</ListView>
</RelativeLayout>
row.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:background="#214181"
android:textColor="#FFFFFF"
android:textSize="24sp"
android:padding="10dp">
</TextView>
答案 0 :(得分:1)
是的,是ListView的意图行为,对于recyclerview来说这不再是真的。
您必须按照此处指定的方式禁用分隔符:https://stackoverflow.com/a/1914588/802034
getListView().setDivider(null); getListView().setDividerHeight(0); android:divider="@null" android:dividerHeight="0dp"
答案 1 :(得分:0)
所有这些都不是引起问题的边际。它是列表视图中的分隔符。
将其设为null。
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#00FF00">
</ListView>