我在LinearLayout中有两个列表,我希望它们根据内容共享它们之间的空格,
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/page_vierge"
android:orientation="vertical"
android:padding="5dp">
<ListView
android:id="@+id/list_amis_fb"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:cacheColorHint="#00000000"
android:divider="#00000000"
android:dividerHeight="0.5dp"
android:padding="5dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_gravity="center"
android:textSize="20sp"
android:text="Amis "/>
<ListView
android:id="@+id/list_amis"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:cacheColorHint="#00000000"
android:divider="#00000000"
android:dividerHeight="0.5dp"
android:padding="5dp" />
</LinearLayout>
看看图片
1:如果列表1的内容较小而列表2较长
2:如果列表2的内容很小而列表1更长
3:2列表很长
在我的代码中,当列表1很长时,列表2是不可见的!!
帮助。
答案 0 :(得分:1)
强大的textyou应使用ExpandableListview
和隐藏列表视图 组标题和始终展开组以获得您想要的效果。 ..见这里
http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/
答案 1 :(得分:0)
有3个条件 - 1:如果列表1很小而列表2较长
2:如果列表2很小而列表1更长
3:2列表很长
使用LinearLayout子元素的layout_weight属性(ListViews)。
答案 2 :(得分:0)
你可以通过添加重量来设置它,在代码下方的looke,我已经添加了。你可以根据你的要求改变重量。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/page_vierge"
android:orientation="vertical"
android:weightsum="10"
android:padding="5dp">
<ListView
android:id="@+id/list_amis_fb"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:weight="4"
android:layout_marginTop="10dp"
android:cacheColorHint="#00000000"
android:divider="#00000000"
android:dividerHeight="0.5dp"
android:padding="5dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:weight="2"
android:layout_gravity="center"
android:textSize="20sp"
android:text="Amis "/>
<ListView
android:id="@+id/list_amis"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:weight="4"
android:layout_marginTop="10dp"
android:cacheColorHint="#00000000"
android:divider="#00000000"
android:dividerHeight="0.5dp"
android:padding="5dp" />
</LinearLayout>
如果你想要第一个列表长,那么你可以将第一个列表视图的权重设置为“5”,将textview权重设置为“1”,将第二个列表视图权重设置为“4”。根据你的需要改变体重。
答案 3 :(得分:0)
当您拥有填充ListViews
的适配器时,您只需比较getCount()
函数的结果并相应地设置layout_height
属性。
public void onCreate(...)
...
ListView list1 = (ListView)findViewById(R.id.list_amis_fb);
ListView list2 = (ListView)findViewById(R.id.list_amis);
ListAdapter list1_adapter = ... //However you get your data
ListAdapter list2_adapter = ...
int count_difference = list1_adapter.getCount() - list2_adapter.getCount();
if (count_difference < 0){
list1.setLayoutParams(LayoutParams.match_parent, 100);
list2.setLayoutParams(LayoutParams.match_parent, LayoutParams.fill_parent);
}
if (count_difference == 0)
{
...
}