2012-12-20 52 views
2

我有一個ListView,其中包含一個LinearLayout在視圖的頂部,用作標題欄。列表可以滾動,但標題欄保持不變。在標題欄中,我想要一個「後退」按鈕,但導致標題文本變得不居中:如何在包含按鈕的Android標題欄中居中文字?

uncentered text 我添加了第二個具有相同大小的按鈕(位於標題欄的右側)和使得它無形的,以作爲「間隔」文本居中上,但後來我失去了很多標題欄地產的:

enter image description here

有沒有辦法告訴安卓居中標題文本並忽略後退按鈕?也許這只是生活的方式,但是我認爲每個人都會先運行它,然後再繼續看第二個隱藏的按鈕或其他東西。 感謝

+0

是第3個按鈕是不是顯示? –

+0

您是否嘗試了'FrameLayout' ..後框與文本視圖和前框與後退按鈕.. –

+0

nirav - 是的,我忘了讓最右邊的按鈕在屏幕截圖中可見。我更新了第一張截圖以澄清。 – wufoo

回答

2

喲可以使用相對佈局代替的LinearLayout,

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="#ffffaa" > 

     <Button 
      android:id="@+id/button2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="false" 
      android:gravity="center" 
      android:text="Button" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="false" 
      android:gravity="center" 
      android:paddingLeft="100dp" 
      android:paddingRight="100dp" 
      android:text="Header Title Embiggeden" 
      android:textSize="20dp" /> 
    </RelativeLayout> 
+0

很好,謝謝! – wufoo

1

然後嘗試使用相對佈局, 的文本是

android:layout_centerHorizontal="true" 

1.android:layout_toLeftOf="text id" 
2.android:layout_toRightOf="text id" 
2

取而代之的是LinearLayout中的兩個按鈕,您可以使用RelativeLayout的爲你的頭。並使用佈局參數如下:

  • 後退按鈕與其父項的左側邊緣對齊。
  • TextView的取整父(LayoutParam.FILLPARENT)與重心
1

採取relativelayout代替linearlayout .SET文本視圖屬性centerinvertical=true 並設置按鈕alignParent=left.

1

設置TextView左邊的TextView等於不可見按鈕寬度

1

可以使用相對佈局,而不是LinearLayout中

<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:background="#00ff00"> 

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:gravity="center" android:maxLines="1" 
     android:ellipsize="end" android:layout_centerInParent="true"/> 

    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" android:layout_centerVertical="true"/> 

</RelativeLayout> 

,或者您可以使用的FrameLayout

<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:background="#00ff00"> 

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

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal"/> 

    </FrameLayout> 
2

這是給你。我在我的項目中做了這個。

<?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" 
     android:orientation="vertical" > 

     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="#FF00FF" 
      android:orientation="horizontal" > 

     <Button 
      android:id="@+id/testbutton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="left" 
      android:text="Back" > 
     </Button> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Header" 
      android:gravity="center_horizontal" 
      android:textSize="30sp" ></TextView> 
     </RelativeLayout> 

     <ListView 
      android:id="@id/android:list" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_marginTop="40dp" 
      android:divider="@android:color/transparent" 
      android:dividerHeight="10sp" > 
     </ListView> 



    </RelativeLayout> 

這就是你需要的,並根據你的需要改變第二個RelativeLayout的顏色。

+0

我希望這是您的問題的完美解決方案。我已經測試過它。 – Unknown

相關問題