0
我有兩種佈局,其中一種是主佈局,其中包括我的自定義鍵盤佈局。當我隱藏包含的佈局時,主佈局會變形。Android:在相對佈局中查看和隱藏包含的佈局
我的主佈局xml如下。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root_rl"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient_header" >
<LinearLayout
android:id="@+id/linHeader"
style="@style/linHeader"
android:layout_height="55dp"
android:baselineAligned="false"
android:weightSum="1" >
<LinearLayout
android:id="@+id/linLogo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".60"
android:gravity="center_vertical" >
<TextView
android:id="@+id/tvOutletName"
style="@style/linHeader_text"
android:text="" >
</TextView>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".40"
android:gravity="right|center_vertical" >
<LinearLayout
android:id="@+id/btnAdvList"
style="@style/btnChart"
android:onClick="btnAdvList" >
</LinearLayout>
<LinearLayout
android:id="@+id/btnDownArrow"
style="@style/btnDownArrow"
android:onClick="btnCollapseExpand" >
</LinearLayout>
<LinearLayout
android:id="@+id/btnRightArrow"
style="@style/btnRightArrow"
android:onClick="btnDone" >
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/linSearch"
style="@style/linSearch"
android:layout_below="@+id/linHeader" >
<EditText
android:id="@+id/etSearchText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_weight="1"
android:hint="@string/LblText_Search" />
</LinearLayout>
<LinearLayout
android:id="@+id/linInfo"
style="@style/linInfo"
android:layout_below="@+id/linSearch" >
<Spinner
android:id="@+id/spinner1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
</Spinner>
<Spinner
android:id="@+id/spinner2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
</Spinner>
<Spinner
android:id="@+id/spinner3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
</Spinner>
</LinearLayout>
<LinearLayout
android:id="@+id/linTitle"
style="@style/lstTitle"
android:layout_below="@+id/linInfo" >
<TextView
android:id="@+id/tvItems"
style="@style/lstTitleText"
android:layout_width="0dp"
android:layout_weight="2"
android:text="@string/LblText_Items" >
</TextView>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lsttitle_seperator" >
</ImageView>
<TextView
android:id="@+id/tvOrder"
style="@style/lstTitleText"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/AdvList_Order" >
</TextView>
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lsttitle_seperator" >
</ImageView>
<TextView
android:id="@+id/tvTotal"
style="@style/lstTitleText_Right"
android:layout_width="0dp"
android:layout_weight="1"
android:text="@string/AdvList_Total" >
</TextView>
</LinearLayout>
<LinearLayout
android:id="@+id/linBody"
style="@style/linBody"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_above="@+id/linKeypad"
android:layout_below="@+id/linTitle"
android:orientation="vertical"
android:weightSum="1" >
<ExpandableListView
android:id="@+id/expandableList"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:childDivider="#fff"
android:focusable="true"
android:groupIndicator="@android:color/transparent" >
</ExpandableListView>
</LinearLayout>
<LinearLayout
android:id="@+id/linKeypad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/linFooter" >
<include
android:id="@+id/linearLayoutKeyPad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/custom_decimal_keypad" />
</LinearLayout>
<LinearLayout
android:id="@+id/linFooter"
style="@style/linFooter" >
<TextView
android:id="@+id/tvOrdersTaken"
style="@style/linFooter_text"
android:layout_weight="1" >
</TextView>
<TextView
android:id="@+id/tvTotalValue"
style="@style/linFooter_text"
android:layout_weight="1"
android:gravity="right" >
</TextView>
</LinearLayout>
</RelativeLayout>
和所包含的鍵盤佈局如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayoutKeyPad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#efefef"
android:orientation="vertical"
>
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="#999"
android:gravity="center_horizontal" >
<Button
android:id="@+id/btnKeyPad0"
android:layout_width="40dip"
android:onClick="btnKeyPad0"
android:text="0" >
</Button>
<Button
android:id="@+id/btnKeyPad1"
android:layout_width="40dip"
android:onClick="btnKeyPad1"
android:text="1" >
</Button>
<Button
android:id="@+id/btnKeyPad2"
android:layout_width="40dip"
android:onClick="btnKeyPad2"
android:text="2" >
</Button>
<Button
android:id="@+id/btnKeyPad3"
android:layout_width="40dip"
android:onClick="btnKeyPad3"
android:text="3" >
</Button>
<Button
android:id="@+id/btnKeyPad4"
android:layout_width="40dip"
android:onClick="btnKeyPad4"
android:text="4" >
</Button>
<ImageButton
android:id="@+id/btnKeyPadBackSpace"
android:layout_width="40dip"
android:onClick="btnKeyPadBackSpace"
android:src="@drawable/backspace" >
</ImageButton>
</TableRow>
</TableLayout>
<TableLayout
android:id="@+id/tableLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="#999"
android:gravity="center_horizontal" >
<Button
android:id="@+id/btnKeyPad5"
android:layout_width="40dip"
android:onClick="btnKeyPad5"
android:text="5" >
</Button>
<Button
android:id="@+id/btnKeyPad6"
android:layout_width="40dip"
android:onClick="btnKeyPad6"
android:text="6" >
</Button>
<Button
android:id="@+id/btnKeyPad7"
android:layout_width="40dip"
android:onClick="btnKeyPad7"
android:text="7" >
</Button>
<Button
android:id="@+id/btnKeyPad8"
android:layout_width="40dip"
android:onClick="btnKeyPad8"
android:text="8" >
</Button>
<Button
android:id="@+id/btnKeyPad9"
android:layout_width="40dip"
android:onClick="btnKeyPad9"
android:text="9" >
</Button>
<Button
android:id="@+id/btnKeyPadDecimal"
android:layout_width="40dip"
android:onClick="btnKeyPadDecimal"
android:text="." >
</Button>
<Button
android:id="@+id/btnKeyPadOk"
android:layout_width="43dip"
android:onClick="btnKeyPadOk"
android:text="@string/LblText_Ok" >
</Button>
</TableRow>
</TableLayout>
</LinearLayout>
的擴張列表視圖排佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linOrderTakingList"
style="@style/lstRow" >
<TextView
android:id="@+id/tvItemDesc"
style="@style/lstRowText"
android:layout_width="0dp"
android:layout_weight="2" >
</TextView>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lsttitle_seperator" >
</ImageView>
<TextView
android:id="@+id/tvOrderQty"
style="@style/lstRowText"
android:layout_width="0dp"
android:layout_weight="1" >
</TextView>
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/lsttitle_seperator" >
</ImageView>
<TextView
android:id="@+id/tvOrderValue"
style="@style/lstRowText_Right"
android:layout_width="0dp"
android:layout_weight="1" >
</TextView>
</LinearLayout>
的擴張列表視圖子佈局是:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
style="@style/lstRow_Expanded_1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/btnUnit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="@string/LblText_Unit" >
</Button>
<Button
android:id="@+id/btnCopy"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="@string/MenuBtnText_Copy" >
</Button>
<TextView
android:id="@+id/tvQty"
style="@style/txtLable"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="right"
android:text="@string/AdvList_Qty" >
</TextView>
<TextView
android:id="@+id/tvQtyValue"
style="@android:style/Widget.EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2" >
<requestFocus />
</TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvAvg"
style="@style/txtLable"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="@string/LblText_Avg" >
</TextView>
<TextView
android:id="@+id/tvLag"
style="@style/txtLable"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="@string/LblText_Lag" >
</TextView>
<TextView
android:id="@+id/tvUnitPr"
style="@style/txtLable"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="@string/LblText_Unit_Pr" >
</TextView>
<TextView
android:id="@+id/tvMrp"
style="@style/txtLable"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="@string/LblText_MRP" >
</TextView>
<TextView
android:id="@+id/tvSo"
style="@style/txtLable"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="@string/LblText_SO" >
</TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvAvgValue"
style="@android:style/Widget.EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:id="@+id/tvLagValue"
style="@android:style/Widget.EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:id="@+id/tvUnitPrValue"
style="@android:style/Widget.EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:id="@+id/tvMrpValue"
style="@android:style/Widget.EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:id="@+id/tvSoValue"
style="@android:style/Widget.EditText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
</TableRow>
</TableLayout>
和扭曲的佈局,使鍵盤可見後截圖:佈局查看鍵盤之前的截圖
我也試圖刷新子視圖,無效該視圖以編程方式修改相對佈局。請幫我解決一些問題。如果我不把這個列表放在鍵盤上面,它不會扭曲,但是列表視圖隱藏在沒有用的鍵盤後面。我基本上需要使用鍵盤在列表視圖可見時將其向上推,當它消失時恢復正常。
您可以簡單地在主視圖/佈局/活動中使用「相對佈局」,而不是使用如此多嵌套的「線性佈局」。具有諷刺意味的是,你的問題標題是** Android:以相對佈局查看和隱藏包含的佈局**,但這裏沒有顯示任何「相對佈局」代碼。請重新編輯。 – Ghost 2012-03-27 06:00:55
當您隱藏佈局並檢查時,使用kepad.setVisibility(View.GONE)。 – user936414 2012-03-27 06:04:10
對不起格式化,現在編輯了佈局。關於能見度,當我設置GONE和VISIBLE時,由於佈局被調整,我得到了失真。如果我只是簡單地使用INVISIBLE和VISIBLE,那麼就不會出現失真,但我不想讓emtpty空間被阻擋。我試圖將寬度和高度設置爲0,即使發生了相同的失真。 – Mal 2012-03-27 07:12:12