我有一个列表,我发现列表项目间隔太多。我想减少它,但不确定如何。
以下是布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f2f2f2"
>
<ListView
android:id="@+id/listMessages"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/divider"
android:layout_below="@+id/iSchedule"
android:divider="@null"
android:dividerHeight="0dp"
android:drawSelectorOnTop="false"
android:padding="0dip"
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
tools:listitem="@layout/message_left" />
<RelativeLayout
android:id="@+id/divider"
android:layout_width="fill_parent"
android:layout_height="1dip"
android:background="@color/off_white"
android:layout_above="@+id/relSendMessage" />
<RelativeLayout
android:id="@+id/relSendMessage"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:background="#ddd"
android:paddingLeft="10dp"
android:layout_alignParentBottom="true">
<EditText
android:id="@+id/messageBodyField"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/sendButton"
android:layout_alignTop="@+id/sendButton"
android:layout_marginBottom="-4dp"
android:layout_marginRight="10dp"
android:layout_toLeftOf="@+id/sendButton"
android:background="@android:color/white"
android:hint="@string/message_elipses"
android:inputType="text|textNoSuggestions|none"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
android:textColor="#000000"
android:textColorLink="#adefda"
android:textSize="14sp" />
<Button
android:id="@+id/sendButton"
android:layout_width="72dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_margin="4dp"
android:background="@drawable/button_send" />
</RelativeLayout>
<Button
android:id="@+id/iSchedule"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:alpha="0.7"
android:background="#C11B17"
android:text="event"
android:textColor="#f2f2f2"
android:textSize="20sp"
android:textStyle="bold"
android:typeface="serif" />
<com.parse.ParseImageView
android:id="@+id/iProfilempic1"
android:layout_width="50dp"
android:layout_height="100dp"
android:layout_alignBottom="@+id/iSchedule"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/abc_ab_solid_light_holo" />
<TextView
android:id="@+id/tMName1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tMActivityName1"
android:textColor="#292826"
android:textSize="16sp"
android:layout_marginLeft="2dp"
android:maxLength="40"
android:textStyle="bold"
android:typeface="serif" />
<TextView
android:id="@+id/tMActivityName1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_below="@+id/tMName1"
android:layout_toRightOf="@+id/iProfilempic1"
android:maxLength="40"
android:textColor="#292826"
android:textSize="16sp"
android:typeface="serif" />
</RelativeLayout>
我还想限制列表25中的项目数量。列表中不能显示超过25个项目,并且想知道我是否可以在布局中实现这一点,而不是可编程的(不使用自定义)适配器)。
下面是如何在java代码中声明列表:
messagesList = (ListView) findViewById(R.id.listMessages);
messageAdapter = new MessageAdapter(this);
messagesList.setAdapter(messageAdapter);
答案 0 :(得分:1)
您已经拥有dividerHeight=0dp
。这就像它会得到的那样接近。唯一可以解释项之间额外间距的事情是在实际项目视图中填充。你可能想减少那个填充。
至于你的限制25,这是你指定的方式所不可能的。限制此操作的唯一方法是以编程方式限制适配器的内容。一种非常简单的方法(使用ArrayAdapter
):
private void addItems(Collection<String> items) {
for (String item : items) {
if (mAdapter.getCount() < 25) {
mAdapter.add(item);
}
}
}