2010-08-30 63 views
0

[首先,對不起,我不能拿出一個更聰明的問題的標題。]的Android,layout_width和寬度,alignBaseline,TableLayout和layout_span相關的問題

好吧,跟我一起當你讀到這篇文章很長的帖子。

我是Android新手,這是我第一個虛擬比薩訂單應用程序。我正在玩XML佈局,並有一些問題。

  • editText_CardNo熄滅屏幕,其列不伸展,爲什麼? (Image

[編輯]

  • 我可以指定所有的TableRow全球layout_marginRight?

解決

  • 我已經對準使用alignBaseline元素,但我沒有看到它的工作。
  • 在Crust部分我已經做了layout_span =「2」但沒有用,第二個單選按鈕的文本仍然包裝。 (Image
  • 內表例如TableRow內部的TableLayout顯得非常醜陋,只有左半部分是可見的,還嘗試在TableLayout中添加layout_span或者包含它的TableRow,但沒有用。 (Image

  • 如何摺疊子部分TableRow中的TableLayout使用屬性?

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView android:id="@+id/scrollView_PizzaOrder" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<TableLayout android:id="@+id/tableLayout_PizzaOrder" 
android:shrinkColumns="0" 
android:stretchColumns="1" 
android:layout_gravity="left" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<TableRow android:id="@+id/tableRow_PizzaType" 
android:layout_marginTop="10px" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<TextView android:text="Type" 
android:id="@+id/textView_Type" 
android:textStyle="bold" 
android:layout_alignBaseline="@+id/spinner_Type"  
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 


<Spinner android:id="@+id/spinner_Type" 
android:drawSelectorOnTop="true" 
android:layout_width="200px" 
android:layout_height="wrap_content"> 
</Spinner> 
</TableRow> 




<TableRow android:id="@+id/tableRow_PizzaSize" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<TextView android:text="Size" 
android:id="@+id/textView_Size" 
android:textStyle="bold" 
android:layout_alignBaseline="@+id/spinner_Size" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 


<Spinner android:id="@+id/spinner_Size" 
android:drawSelectorOnTop="true" 
android:layout_marginBottom="20px" 
android:layout_width="200px" 
android:layout_height="wrap_content"> 
</Spinner> 
</TableRow> 



<TableRow android:id="@+id/tableRow_Crust" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<RadioGroup android:id="@+id/radioGroup_Crust" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 

<RadioButton android:text="Single Crust" 
android:id="@+id/radioButton_SingleCrust" 
android:checked="true" 
android:layout_span="2" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</RadioButton> 

<RadioButton android:text="Double Crust" 
android:id="@+id/radiobutton_DoubleCrust" 
android:layout_span="2" 
android:layout_marginBottom="20px" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</RadioButton> 



</RadioGroup> 

</TableRow> 


<TableRow android:id="@+id/tableRow_Toppings" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<CheckBox android:text="Extra Toppings?" 
android:id="@+id/checkbox_ExtraToppings" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

</TableRow> 


<TableRow android:id="@+id/tableRow_ToppingsTable" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<TableLayout android:id="@+id/tableLayout_Toppings" 
android:layout_marginLeft="20px"  
android:layout_gravity="left" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<TableRow android:id="@+id/tableRow_SelectToppings" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<CheckBox android:text="Olives" 
android:id="@+id/checkbox_Olives" 
android:checked="true" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

<CheckBox android:text="Cheese" 
android:id="@+id/checkbox_Cheese" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

</TableRow> 


<TableRow android:id="@+id/tableRow_SelectCustomToppings" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<CheckBox android:text="Custom" 
android:id="@+id/checkbox_Custom" 
android:layout_marginRight="10px" 
android:layout_alignBaseline="@+id/editText_Custom" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

<EditText android:text="" 
android:id="@+id/editText_Custom" 
android:singleLine="true"  
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</EditText> 

</TableRow> 
</TableLayout> 
</TableRow> 






<TableRow android:id="@+id/tableRow_SeparaterDrinks" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<View android:layout_height="2px" 
android:background="#884400" 
android:layout_span="2" 
android:layout_margin="25px" /> 

</TableRow> 


<TableRow android:id="@+id/tableRow_Drinks" 
android:layout_span="2" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<CheckBox android:text="Drinks?" 
android:id="@+id/checkbox_Drinks" 
android:checked="true" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 
</TableRow> 


<TableRow android:id="@+id/tableRow_DrinksTable" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<TableLayout android:id="@+id/tableLayout_Drinks" 
android:layout_marginLeft="20px" 
android:layout_gravity="left" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 



<TableRow android:id="@+id/tableRow_SelectDrinksPepsi" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<!-- Drinks links, for now static generation, later use XML and Dynamic Generation --> 

<CheckBox android:text="Pepsi" 
android:id="@+id/checkbox_Pepsi" 
android:checked="true" 
android:layout_alignBaseline="@+id/textView_QuantityPepsi" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

<TextView android:text="Quantity:" 
android:id="@+id/textView_QuanityPepsi" 
android:textStyle="bold" 
android:layout_alignBaseline="@+id/editText_QuantityPepsi" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 

<EditText android:text="1" 
android:id="@+id/editText_QuantityPepsi" 
android:singleLine="true" 
android:maxLength="3" 
android:numeric="integer" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</EditText> 


</TableRow> 




<TableRow android:id="@+id/tableRow_SelectDrinksCoke" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<CheckBox android:text="Coke" 
android:id="@+id/checkbox_Coke" 
android:layout_alignBaseline="@+id/textView_QuantityCoke" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">  
</CheckBox> 

<TextView android:text="Quantity:" 
android:id="@+id/textView_QuantityCoke" 
android:textStyle="bold" 
android:layout_alignBaseline="@+id/editText_QuantityCoke" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 

<EditText android:text="0" 
android:id="@+id/editText_QuantityCoke" 
android:singleLine="true" 
android:maxLength="3" 
android:numeric="integer" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</EditText> 

</TableRow> 



<TableRow android:id="@+id/tableRow_SelectDrinksSprite" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<CheckBox android:text="Sprite" 
android:id="@+id/checkbox_Sprite" 
android:layout_alignBaseline="@+id/textView_QuantitySprite" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

<TextView android:text="Quantity:" 
android:id="@+id/textView_QuantitySprite" 
android:layout_alignBaseline="@+id/editText_QuanitySprite" 
android:textStyle="bold" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content">  
</TextView> 

<EditText android:text="0" 
android:id="@+id/editText_QuantitySprite" 
android:singleLine="true" 
android:maxLength="3" 
android:numeric="integer" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</EditText> 


</TableRow> 



<TableRow android:id="@+id/tableRow_SelectDrinksMountainDew" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<CheckBox android:text="Mirinda" 
android:id="@+id/checkbox_Mirinda" 
android:layout_alignBaseline="@+id/textView_QuantityMirinda" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

<TextView android:text="Quantity:" 
android:id="@+id/textView_QuantityMirinda" 
android:layout_alignBaseline="@+id/editText_QuantityMirinda" 
android:textStyle="bold" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 

<EditText android:text="0" 
android:id="@+id/editText_QuantityMirinda" 
android:singleLine="true" 
android:maxLength="3" 
android:numeric="integer" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</EditText> 


</TableRow> 


<TableRow android:id="@+id/tableRow_SelectDrinks7up"  
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<CheckBox android:text="7up" 
android:id="@+id/checkbox_7up" 
android:layout_alignBaseline="@+id/textView_Quantity7up" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

<TextView android:text="Quantity: " 
android:id="@+id/textView_Quantity7up" 
android:layout_alignBaseline="@+id/editText_Quantity7up" 
android:textStyle="bold" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 

<EditText android:text="0" 
android:id="@+id/editText_Quantity7up" 
android:singleLine="true" 
android:maxLength="3" 
android:numeric="integer" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</EditText> 

</TableRow> 
</TableLayout> 
</TableRow> 




<TableRow android:id="@+id/tableRow_SeparaterMember" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<View android:layout_height="2px" 
android:background="#884400" 
android:layout_span="2" 
android:layout_margin="25px" /> 

</TableRow> 

<TableRow android:id="@+id/tableRow_Member" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<CheckBox android:text="Are you a Member?" 
android:id="@+id/checkbox_Member" 
android:layout_span="2" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</CheckBox> 

</TableRow> 

<TableRow android:id="@+id/tableRow_MemberData" 
android:layout_marginLeft="20px" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<TextView android:text="Card #:" 
android:id="@+id/textView_CardNo" 
android:textStyle="bold" 
android:layout_alignBaseline="@+id/editText_CardNo" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 

<EditText android:text="" 
android:id="@+id/editText_CardNo" 
android:singleLine="true" 
android:maxLength="8" 
android:numeric="integer" 
android:layout_width="200px" 
android:layout_height="wrap_content"> 
</EditText> 


</TableRow> 

<TableRow android:id="@+id/tableRow_SeparaterMemberData" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 

<View android:layout_height="2px" 
android:background="#884400" 
android:layout_span="2" 
android:layout_margin="25px" /> 


</TableRow> 



<TableRow android:id="@+id/tableRow_Name" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<TextView android:text="Name:" 
android:id="@+id/textView_Name" 
android:layout_alignBaseline="@+id/editText_Name" 
android:textStyle="bold" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 

<EditText android:text="" 
android:id="@+id/editText_Name" 
android:singleLine="true" 
android:maxLength="35" 
android:layout_width="200px" 
android:layout_height="wrap_content"> 
</EditText> 




</TableRow> 

<TableRow android:id="@+id/tableRow_CellNumber" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 



<TextView android:text="Cell:" 
android:id="@+id/textView_Cell" 
android:textStyle="bold" 
android:layout_alignBaseline="@+id/editText_Cell"  
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 

<EditText android:text="" 
android:id="@+id/editText_Cell" 
android:singleLine="true" 
android:phoneNumber="true" 
android:maxLength="15" 
android:layout_width="200px" 
android:layout_height="wrap_content"> 
</EditText> 

</TableRow> 


<TableRow android:id="@+id/tableRow_Address" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 



<TextView android:text="Address:" 
android:id="@+id/textView_Address" 
android:textStyle="bold" 
android:layout_alignBaseline="@+id/editText_Address" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</TextView> 

<EditText android:text="" 
android:id="@+id/editText_Address" 
android:singleLine="true" 
android:maxLength ="200" 
android:layout_width="200px" 
android:layout_height="wrap_content"> 
</EditText> 

</TableRow> 


<TableRow android:id="@+id/tableRow_PlaceOrder" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 


<Button android:text="Place Order!" 
android:id="@+id/button_PlaceOrder" 
android:onClick="placeOrder" 
android:layout_column="1"   
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</Button> 




</TableRow> 

</TableLayout> 
</ScrollView> 

回答

2

layout_alignBaseline僅用於RelativeLayout的。 LinearLayout(因此TableLayout)默認執行基線對齊。

layout_span需要放在RadioGroup上,而不是RadioButtons上。

editText_CardNo因爲將其寬度設置爲android:layout_width =「200px」而熄滅。這太大了。只有在比屏幕小的時候,該列才被拉伸。你希望它縮小。您可以設置可收縮和可伸縮的列。

如何摺疊子部分TableRow內的TableLayout使用屬性? >>使用android:visibility =「gone」

+0

即使我將editText_CardNo設置爲20px,它仍然超出屏幕邊界。 – Shoaibi 2010-08-30 16:23:24