对于下面的控件布局,我使用的是2线性布局的相对布局。 1 B1,B2和B3的线性布局,灰色背景和B4,B5和B6的1个线性布局。
我已经读过在相对布局中使用线性布局会减慢渲染速度。
我是如何摆脱线性布局的?特别是我无法获得行B1,B2和B3的灰色背景。或者您认为使用这种方式应该没问题。提前感谢您的帮助。
编辑:
下面是我刚开始构建的xml,如果可能的话,试图摆脱任何子布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:src="@drawable/ic_launcher" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/abc_ic_search_api_holo_light" />
<TextView
android:id="@+id/textView1"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_below="@+id/imageButton1"
android:layout_centerHorizontal="true"
android:text=" Test Label" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="54dp"
android:background="@android:color/darker_gray" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_toRightOf="@+id/linearLayout1"
android:text="Button" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button1"
android:layout_alignBottom="@+id/button1"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/imageView1"
android:text="Button" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_toRightOf="@+id/button2"
android:text="Button" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout1"
android:layout_marginTop="31dp" >
<Button
android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/button5"
android:layout_toLeftOf="@+id/imageButton1"
android:text="Button" />
<Button
android:id="@+id/button4"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/linearLayout2"
android:layout_centerVertical="true"
android:text="Button" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/button4"
android:text="Button" />
</LinearLayout>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textView1"
android:layout_alignTop="@+id/listView1"
android:layout_marginRight="15dp"
android:text="TextView" />
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout2"
android:layout_marginTop="18dp" >
</ListView>
</RelativeLayout>
答案 0 :(得分:1)
如果没有看到你的xml,唯一可以实现此目的的方法是使用单个相对布局,其中包含另一个包含按钮行的LinearLayout。
虽然你是对的,但最好是限制嵌套布局的数量(不仅仅是线性布局,而是任何类型的嵌套布局)。
在这种情况下,要设置行背景,至少需要一个嵌套的LinearLayout,这不是一个大问题。
编辑:在查看XML之后,我认为这是实现您想要的最佳方式。