2011-06-10 47 views
1

我有兩個EditText視圖,其高度我希望對齊。問題是,我無法預測哪個視圖會顯示更多文字,因此使用android:layout_alignTopandroid:layout_alignBottom將不起作用。我正在試驗的佈局如下。我已經嘗試android:layout_alignTopandroid:layoutAlignBottom,但它們不會產生令人滿意的結果。當我不知道兩個視圖提前的文本數量時,如何對齊兩個EditText視圖?

佈局1

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<EditText 
     android:id="@+id/text1" 
     android:layout_width="200dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true"   
     android:padding="5dip" 

     android:text="Text 1 bvhg hbjbj kjkbkj kjnjkn hlihj lklkkl" 
     /> 

<EditText 
     android:id="@+id/text2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/text1"   
     android:padding="5dip" 

     android:text="Text 2 lasndklsa lkmsclslk klmsldmlk lksdl" 
     /> 


</RelativeLayout> 

圖用於佈局1http://imgur.com/P6KV7.png

佈局2與android:layout_alignTopandroid:layout_alignBottom

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<EditText 
     android:id="@+id/text1" 
     android:layout_width="200dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignTop="@+id/text2" 
     android:layout_alignBottom="@+id/text2" 

     android:padding="5dip" 

     android:text="Text 1 bvhg hbjbj kjkbkj kjnjkn hlihj lklkkl" 
     /> 

<EditText 
     android:id="@+id/text2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/text1"   
     android:padding="5dip" 

     android:text="Text 2 lasndklsa lkmsclslk klmsldmlk lksdl" 
     /> 


</RelativeLayout> 

佈局2圖http://imgur.com/x6fyI.png

但是,如果我要更改第一個EditText上的文本,那麼該框中的某些文本會被截斷。見佈局3和圖3所示:

間隔3

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<EditText 
     android:id="@+id/text1" 
     android:layout_width="200dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignTop="@+id/text2" 
     android:layout_alignBottom="@+id/text2" 

     android:padding="5dip" 

     android:text="Text 1 bvhg hbjbj kjkbkj kjnjkn hlihj lklkkl 
        1 bvhg hbjbj kjkbkj kjnjkn hlihj lklkkl ncksjcksn 
        lkslksldcsdc 
        the end" 
     /> 

<EditText 
     android:id="@+id/text2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/text1"   
     android:padding="5dip" 

     android:text="Text 2 lasndklsa lkmsclslk klmsldmlk lksdl" 
     /> 


</RelativeLayout> 

圖3爲間隔3:(對不起,不能發佈,因爲代表的問題超過兩個超鏈接)

有沒有辦法在兩個視圖中的文本數量未知時提前知道EditText視圖的高度?

+0

所以你想一個API級別的Android設備水平對齊由中間點的兩種觀點他們的高度?你有沒有考慮過在Scroller中包裝TextViews,以保證已知的高度? – 2011-06-10 02:40:31

+0

@CaspNZ我希望視圖具有相同的高度。換句話說,頂部和底部需要彼此對齊,而不管視圖中文本的數量如何。我不確定我看到一個卷軸在這裏會有幫助。 – Mandel 2011-06-10 02:44:19

回答

1

那麼,我不得不說,這是我第一次發現TableLayout有用。請注意文本LOOKS在預覽中截斷(因爲它非常大),但是當您編譯並運行時,您會看到文本是可滾動的。 TableView爲你做了所有棘手的事情。我認爲這會對你有用。
剛剛意識到您希望textviews看起來同樣大小 - 這很容易 - 給他們一個透明的背景,並使桌子的背景具有背景。 編輯 - 一兩件事 - 由於框架的錯誤,我不得不用這樣的:

android:inputType="none" 
android:editable="false" 

來獲取文本滾動和不可編輯。此外,從@mandel好點 - 使用「FILL_PARENT」而不是「match_parent」如果編程小於8

<TableLayout 
    android:id="@+id/tableLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <TableRow 
     android:layout_height="fill_parent" 
     android:layout_width="wrap_content" 
     android:id="@+id/tableRow1" 
     android:gravity="center_vertical"> 
     <EditText 
      android:inputType="none" 
      android:editable="false" 
      android:text="I have two EditText to align. The problem is that I cannot predict which view will have more tetText to align. The problem is that I cannot predict which view will have more text and hencem I have two EditText views whose height I wish to align. The problem is that I cannot predict which view will have more text and hence" 
      android:id="@+id/editText1" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="match_parent"> 
     </EditText> 
     <EditText 
      android:inputType="none" 
      android:editable="false" 
      android:text="I have two EditText views whose height I wish to alignhave more text and hence " 
      android:id="@+id/editText2" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:layout_height="match_parent"></EditText> 
    </TableRow> 
</TableLayout> 
+0

上述佈局位於中點,但EditText視圖的高度並不相同。我錯過了什麼嗎? – Mandel 2011-06-10 03:32:33

+0

不,我犯了一個錯誤 - 現在修正 - 將EditText高度更改爲「match_parent」。 – 2011-06-10 03:41:58

+0

啊,那有效。也許,你應該還提到,如果將Android api定位到8以下,應該使用'fill_parent'而不是'match_parent'。請參閱:http:// stackoverflow。com/questions/5761960/what-is-the-difference-between-match-parent-and-fill-parent-property-in-android – Mandel 2011-06-10 03:48:07

相關問題