2011-11-19 87 views
1

我試圖用左右按鈕和中心標題創建一個標題,並在按鈕右側(這將允許選擇一些東西)立即使用按鈕。佈局應該是這樣的:帶有橢圓和按鈕的TextView

|<Button>  <TextView><Button>   <Button>| 

如果標題很長,則應該省略號。爲此,文本視圖需要layout_weight,如this solution所示,否則會將正確的按鈕從屏幕上移開。然而,設置layout_weight爲TextView的推動中央按鈕關閉的權利:

|<Button>  <TextView>   <Button><Button>| 

,因爲它代表的佈局是這樣的:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    > 

    <Button 
     android:text="Hello" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 

    <TextView 
     android:text="Testing" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:singleLine="true" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:ellipsize="end" 
     android:inputType="text" 
     /> 

    <Button 
     android:text="Hello" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 

    <Button 
     android:text="Hello" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
</LinearLayout> 

[編輯]嘗試FunkTheMonk的做法也並非完全奏效,因爲如果字符串很長,它會將中央按鈕從佈局中推出:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    > 

    <Button 
     android:text="Hello1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="horizontal" 
      android:gravity="center" 
      android:layout_weight="1" 
     > 
     <TextView 
      android:text="Testing a very long text to see how it works how do you like me now this is still longer yet" 
      android:layout_margin="3dp" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:singleLine="true" 
      android:gravity="center" 
      android:ellipsize="end" 
      android:inputType="text" 
      /> 

     <Button 
      android:text="Hello2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      /> 
    </LinearLayout> 

    <Button 
     android:text="Hello3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
</LinearLayout> 

回答

0

我不是100%確定您的意思。但我想我明白了。一個簡單的方法就是使用tablerow和android:layout_marginLeft &對。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 

    <TableRow android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
     <Button android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hello" 
      android:layout_gravity="left|top"></Button> 

     <TextView android:inputType="text" android:gravity="center" 
      android:ellipsize="end" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:text="Testing" 
      android:singleLine="true" 
      android:layout_marginLeft="57dp"></TextView> 
     <Button android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:layout_gravity="center" 
      android:text="Hello" 
      android:layout_marginRight="57dp"></Button> 


     <Button android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hello" 
      android:layout_gravity="right|top"></Button> 
    </TableRow> 

</LinearLayout> 
+0

如果標題很長,則不起作用。 –

0

添加的TextView和Button在自己的水平線性佈局,設置權重上。將此新線性佈局的重心設置爲居中,文本視圖和按鈕將居中放置在兩個外部按鈕之間的可用空間中。

如果標題很長,那麼文本視圖將佔用盡可能多的空間,因爲它可以在食譜遮擋前的線性佈局內進行。

+0

請參閱上面的編輯,這似乎不太有效。 –