2014-01-27 3 views
0

Я пытаюсь создать кнопку Heading +, аналогичную Google Music App, например. где есть «Песня» Header на левом, а затем на правом есть кнопка с текстом «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 использует «ориентацию», а не RelativeLayouts.

Вы должны изучить некоторые учебники (например, этот: http://mobile.tutsplus.com/tutorials/android/android-layout/), но в конечном итоге вы, вероятно, сначала поместите свою кнопку, а затем свое текстовое представление, чтобы содержимое текста было соответствующим образом перенесено.

0

Чтобы получить тот же эффект, что и в приложении «Музыка», я закончил использование RelativeLayout, но вместо кнопки я использую другой 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> 
Смежные вопросы