2014-01-27 114 views
0

我試圖創建一個類似於Google Music App的Heading +按鈕,例如哪裏有「詩經」頭在左邊,然後在右側有一個與文本「X多」的按鈕..RelativeLayout中的按鈕大小和填充

我使用的RelativeLayout爲TextView的和按鈕

我的問題是按鈕佔用了包含文本的佈局的大小,高度是全部錯誤的,並且填充似乎沒有做任何事情。

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     [REMOVED for clarity] 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@color/list_foreground" 
      android:orientation="vertical" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:padding="10dp" 
       android:text="@string/photos" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 

      <Button 
       android:id="@+id/photo_button" 
       style="?android:attr/buttonStyleSmall" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:background="@color/actionbar_background" 
       android:padding="10dp" 
       android:text="test" /> 
     </RelativeLayout> 

我在這裏做錯了什麼?

回答

0

RelativeLayouts旨在讓孩子在佈局中「相對」。換句話說,如果你想讓按鈕在Textview的右邊,你需要告訴它。

因爲你正在相對於父LEFT/RIGHT對齊,所以看起來事情是「種」的工作。

根據您的需要,使用LinearLayout可能會更好。 LinearLayouts使用「orientation」而不是RelativeLayouts。

你應該看看一些教程(比如這個:http://mobile.tutsplus.com/tutorials/android/android-layout/),但最終你可能會先把你的按鈕放在第一個,然後是文本視圖,這樣textview的內容會適當地包裝。

0

爲了獲得與音樂應用程序相同的效果,我最終使用了RelativeLayout而不是Button我使用另一個TextView,這給人的印象是一個按鈕,但它給了我更多的範圍來格式化背景等。我想只需在代碼中設置一個OnClickListener

  <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/photo_title"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentTop="true" 
       android:layout_marginLeft="10dp" 
       android:text="@string/photos" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 

      <TextView 
       android:id="@+id/more_photo_text" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="10dp" 
       android:background="@color/actionbar_background" 
       android:paddingLeft="5dp" 
       android:paddingRight="5dp" 
       android:text="10 MORE" 
       android:textColor="@color/button_text" 
       android:textSize="12sp" /> 
     </RelativeLayout>