【发布时间】:2015-02-20 03:18:27
【问题描述】:
我想为手机的 Android 应用获取此布局:
Icon - Object1
List with entries related to Object1
Icon - Object2
List with entries related to Object2
到目前为止,我使用了以下布局树(在 Android Studio 中使用编辑器进行了图形化编辑):
根线性布局
垂直线性布局
带有图标和文本的水平线性布局
列表视图
垂直线性布局
带有图标和文本的水平线性布局
列表视图
这可能不是组织此类布局的最佳方式(也许我应该使用带有标题的列表,但非常欢迎提出建议),但它可能是深入了解 ListView 工作原理的好案例。
这是生成的图形布局:
蓝色行对应于第一个 LinearLayout。正如你从下面的第二个屏幕截图中看到的那样,第二个列表一直下到地狱,让我和她在一起。有没有办法让列表尊重wrap_content+ weight 的行为?
XML 代码如下。我尝试了几种布局组合(合理的和不合理的):权重,但没有一个有效。我还尝试设置第一个 LinearLayout(隐藏的)的 min-width,但没有任何变化。
你能帮帮我吗?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="2">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:minHeight="50dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView15"
android:src="@drawable/abc_ic_menu_share_mtrl_alpha" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Object1"
android:id="@+id/textView24"
android:textSize="26dp"
android:paddingLeft="10dp" />
</LinearLayout>
</LinearLayout>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView2"
android:layout_weight="1" />
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView16"
android:src="@drawable/abc_ic_commit_search_api_mtrl_alpha" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Object2"
android:id="@+id/textView25"
android:textSize="26dp"
android:paddingLeft="10dp" />
</LinearLayout>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_weight="1" />
</LinearLayout>
【问题讨论】:
标签: android android-layout android-listview