2014-10-07 90 views
1

我想要一個乾淨整潔的形式,像這樣:如何使用TextView和EditText高效地創建表單?

Name:   ____________ 
Foo:   ____________ 
Bar:   ____________ 
Whatever:  ____________ 

每個線路共享屏幕高度相等(在這種情況下,全屏幕的25%),並且每個TextView的應該是對的左半屏幕和EditText應該從屏幕的中心開始。

我目前的解決方案是(本質):

<LinearLayout android:orientation="vertical"> 
    <LinearLayout android:orientation="horizontal" weight="1"> 
     <TextView weight="1"> 
     <EditView weight="1"> 
    </LinearLayout> 

    <LinearLayout android:orientation="horizontal" weight="1"> 
     <TextView weight="1"> 
     <EditView weight="1"> 
    </LinearLayout> 

    <LinearLayout android:orientation="horizontal" weight="1"> 
     <TextView weight="1"> 
     <EditView weight="1"> 
    </LinearLayout> 

    <LinearLayout android:orientation="horizontal" weight="1"> 
     <TextView weight="1"> 
     <EditView weight="1"> 
    </LinearLayout> 
</LinearLayout> 

這種運作良好,但創建嵌套的權重,這是不好的表演。 API級別8有沒有更好的方法來做到這一點?

+0

您是否嘗試過使用表格佈局? – Chitrang 2014-10-07 19:54:57

+0

是的,但我無法獲得每個TextView和EditView填充50%的寬度。 – user1032613 2014-10-07 20:04:37

+0

表格佈局基本上是一樣的東西。我建議你擔心表現時,表現讓你擔心。否則,有一種方法可以在2中拆分relativelayout:http://stackoverflow.com/a/22362494/671543 – njzk2 2014-10-07 20:12:30

回答

1

您可以使用網格佈局,很容易使用,它會壓扁你的看法(通過刪除所有不必要的LinearLayout)

<GridLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:columnCount="2" 
    android:rowCount="4"> 

    <TextView 
     android:layout_column="0" 
     android:layout_row="0"/> 

    <EditView 
     android:layout_column="1" 
     android:layout_row="0"/> 

     ....  
</GridLayout> 

詳情看一看Android dev doc

+0

好的解決方案,但GridLayout被添加到API級別14.儘管有upvote! – user1032613 2014-10-07 20:08:47

0

如果你想你可以右對齊EditText和leftAlign TextView,以便在佈局中獲得對齊的組件。然後你可以從右向左輸入文本。如果您想要使用嵌套權重,這是一種潛在的方法。它可能不會得到你所問的風格類型。

在場上進一步玩minWidth填寫Dialog可能會提供一個乾淨的結構。只要猜測你想從郵件中完成什麼以及你的整體概念如何。

相關問題