我在另一个LinearLayout
内有一个LinearLayout
。我的问题是ToggleButton
在第二个LinearLayout
中不可见..这是我完整的UI。我想知道这个布局设计是高效还是没有。我知道我可以使用TableLayout
但是我在一行中装配3个组件时遇到问题
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dip" >
<TextView
android:id="@+id/supplierNameTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/supplierNameTV"
android:textColor="#FFFFFF"
android:layout_gravity="right"/>
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/supplierName_CB"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:checked="false"
android:text="ToggleButton" />
</LinearLayout>
<TextView
android:id="@+id/prodNameTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/prodNameTV"
android:textColor="#FFFFFF"
android:layout_gravity="right"
android:layout_marginBottom="5dip"
android:layout_marginTop="5dip"/>
<AutoCompleteTextView
android:id="@+id/prodName_CB"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/add_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/addproduct_button"
android:textColor="#372c24" />
<ListView
android:id="@+id/listview"
android:layout_height="wrap_content"
android:layout_width="match_parent">
</ListView>
</LinearLayout>
答案 0 :(得分:1)
使用LinearLayout,您可以轻松分配布局权重。根布局的权重为100,然后布局的其余部分将具有其权重。虽然在这种情况下我建议使用相对布局。原因在于性能以及对不同屏幕的支持,因为布局是相对的。
例如在我的情况下,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="100" >
<ListView
android:id="@+id/mst"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="98" >
</ListView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2" >
<Button
android:id="@+id/btnDelete"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/btn_delete" />
<Button
android:id="@+id/btnExport"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="@string/btn_export" />
<Button
android:id="@+id/btnSelectAll"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="@string/btn_select_all" />
</RelativeLayout>
答案 1 :(得分:1)
尝试将layout_weight分配给AutoCompleteTextView:
<AutoCompleteTextView
android:id="@+id/supplierName_CB"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
答案 2 :(得分:0)
这是因为AutoCompleteTextView占用了整个宽度。将其更改为:
android:layout_width="wrap_content"
或使用固定大小(如60dp)。