我的XML如下:
<LinearLayout
android:orientation="vertical"
android:id="@+id/llBottom"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="2" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/llPhone"
android:layout_weight=".9"
android:gravity="center" >
<ImageView
android:id="@+id/ivMyPhone"
android:layout_width="@dimen/about_logo_size"
android:layout_height="@dimen/about_logo_size"
android:src="@drawable/andicon" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/llPhoneInfo"
android:layout_weight="1.1"
android:weightSum="6"
android:gravity="center" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/llBrand"
android:layout_below="@+id/llPhone"
android:weightSum="2"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/tvBrand"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Phone Brand: "
android:layout_weight="1" />
<TextView
android:id="@+id/tvBrandName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text=""
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/llModel"
android:layout_below="@+id/llBrand"
android:weightSum="2"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/tvModel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Phone Model: "
android:layout_weight="1" />
<TextView
android:id="@+id/tvModelName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text=""
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/llVersion"
android:layout_below="@+id/llModel"
android:weightSum="2"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/tvVersion"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Android Version: "
android:layout_weight="1" />
<TextView
android:id="@+id/tvVersionNumber"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text=""
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/llCode"
android:layout_below="@+id/llVersion"
android:weightSum="2"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/tvCode"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Android Codename: "
android:layout_weight="1" />
<TextView
android:id="@+id/tvCodeName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text=""
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/llAPI"
android:layout_below="@+id/llCode"
android:weightSum="2"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/tvAPI"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="API Level: "
android:layout_weight="1" />
<TextView
android:id="@+id/tvAPILevel"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text=""
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/llScreen"
android:layout_below="@+id/llAPI"
android:weightSum="2"
android:layout_weight="1"
android:gravity="center" >
<TextView
android:id="@+id/tvScreen"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Screen Size (WxH): "
android:layout_weight="1" />
<TextView
android:id="@+id/tvScreenSize"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text=""
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
显示以下内容:
我希望徽标从顶部占据屏幕的1/4,其余信息应该是屏幕的3/4。但出于某种原因,他们都聚集在一起。我该如何解决?
我想做以下(草图):
答案 0 :(得分:1)
这里有很多代码重复。在我看来,你应该只有一个带有ImageView和listView的线性布局。在线性布局内以编程方式为两个子视图使用布局权重。有很多很好的教程可以设置自定义列表视图。这个涵盖了您需要的一切。 AndroidListView
答案 1 :(得分:1)
我希望徽标从顶部占据屏幕的1/4 其余的信息应该是屏幕的3/4
您需要执行以下操作。从android:weightSum
移除属性llBottom
,在android:layout_weight
中将llPhone
设置为1,在android:layout_weight
中将llPhoneInfo
设置为3。
权重的总和将为4,llPhone
占据屏幕的1/4,llPhoneInfo
将占据屏幕的3/4。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llBottom"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/llPhone"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal" >
<ImageView ... />
</LinearLayout>
<LinearLayout
android:id="@+id/llPhoneInfo"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:gravity="center"
android:orientation="vertical"
android:weightSum="6" >
...
</LinearLayout>
</LinearLayout>
对其他布局进行类似的计算。
您还应考虑使用RelativeLayout代替多个嵌套LinearLayouts
以获得更好的效果。