2014-09-11 101 views
0

可能是重複的,但我還沒有找到解決方案。所以,我有一個垂直的LinearLayout,其頭部是一個水平佈局和一個主要內容部分(FrameLayout)。在標題中,我得到了三個孩子,其中一個應該左對齊,另一個右對齊,第三個應該填補之間的空間。將LinearLayout中的左,右和中心對齊三個孩子

android layout

我想我必須使用的RelativeLayout代替的LinearLayout的,但如果我這樣做,它填補的家長完全沒有別的可見。

有什麼建議嗎?基本上紅色矩形內的兩個按鈕應該對齊到右側。

這是XML。

 <LinearLayout 
      android:id="@+id/sort_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingBottom="10dp" 
      android:orientation="horizontal" > 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_gravity="center" 
       android:layout_marginRight="10dp" 
       android:fontFamily="sans-serif-condensed" 
       android:gravity="center" 
       android:text="@string/sort_by" 
       android:textColor="@color/white80" 
       android:textSize="20sp" /> 

      <RadioGroup 
       android:id="@+id/view_group" 
       style="@android:style/ButtonBar" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@android:color/background_dark" 
       android:orientation="horizontal" 
       android:padding="0dp" > 

       <ImageButton 
        android:id="@+id/btn_view_grid" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_margin="0dp" 
        android:layout_weight="1" 
        android:onClick="onShowGrid" 
        android:src="@drawable/ic_action_view_as_grid" /> 

       <ImageButton 
        android:id="@+id/btn_view_list" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_margin="0dp" 
        android:layout_weight="1" 
        android:onClick="onShowGrid" 
        android:src="@drawable/ic_action_view_as_list" /> 

      </RadioGroup> 

      <RadioGroup 
       android:id="@+id/sort_group" 
       style="@android:style/ButtonBar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@android:color/background_dark" 
       android:gravity="center" 
       android:orientation="horizontal" 
       android:padding="0dp" > 

       <Button 
        android:id="@+id/btn_sort_popular" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_margin="0dp" 
        android:layout_weight="1" 
        android:fontFamily="sans-serif-condensed" 
        android:onClick="onSortChanged" 
        android:text="@string/sort_popular" 
        android:textColor="@drawable/sort_button_selector" 
        android:textSize="20sp" /> 

       <Button 
        android:id="@+id/btn_sort_new" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_weight="1" 
        android:fontFamily="sans-serif-condensed" 
        android:onClick="onSortChanged" 
        android:text="@string/sort_newest" 
        android:textColor="@drawable/sort_button_selector" 
        android:textSize="20sp" /> 

       <Button 
        android:id="@+id/btn_sort_hard" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_weight="1" 
        android:fontFamily="sans-serif-condensed" 
        android:onClick="onSortChanged" 
        android:text="@string/sort_hardest" 
        android:textColor="@drawable/sort_button_selector" 
        android:textSize="20sp" /> 

       <Button 
        android:id="@+id/btn_sort_easy" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_weight="1" 
        android:fontFamily="sans-serif-condensed" 
        android:onClick="onSortChanged" 
        android:text="@string/sort_easiest" 
        android:textColor="@drawable/sort_button_selector" 
        android:textSize="20sp" /> 
      </RadioGroup> 

     </LinearLayout> 

     <FrameLayout 
      android:id="@+id/preview_fragment" 
      android:background="@android:color/holo_green_dark" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

    </LinearLayout> 
+0

爲什麼不設置一箇中間爲1,其餘爲0的重量? – 2014-09-11 09:17:14

回答

0

類似的東西可以幫助

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

<LinearLayout 
     android:id="@+id/sort_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingBottom="10dp" 
     android:orientation="horizontal" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_gravity="center" 
      android:layout_marginRight="10dp" 
      android:fontFamily="sans-serif-condensed" 
      android:gravity="center" 
      android:text="sort_by" 
      android:textSize="20sp" /> 


     <RadioGroup 
      android:id="@+id/sort_group" 
      style="@android:style/ButtonBar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/background_dark" 
      android:gravity="center" 
      android:orientation="horizontal" 
      android:padding="0dp" > 

      <Button 
       android:id="@+id/btn_sort_popular" 
       style="?android:attr/buttonBarButtonStyle" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_gravity="center" 
       android:layout_margin="0dp" 
       android:layout_weight="1" 
       android:fontFamily="sans-serif-condensed" 
       android:onClick="onSortChanged" 
       android:text="sort_popular" 
       android:textColor="#FFFF" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/btn_sort_new" 
       style="?android:attr/buttonBarButtonStyle" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_gravity="center" 
       android:layout_weight="1" 
       android:fontFamily="sans-serif-condensed" 
       android:onClick="onSortChanged" 
       android:textColor="#FFFF" 
       android:text="sort_newest" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/btn_sort_hard" 
       style="?android:attr/buttonBarButtonStyle" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_gravity="center" 
       android:layout_weight="1" 
       android:fontFamily="sans-serif-condensed" 
       android:onClick="onSortChanged" 
       android:textColor="#FFFF" 
       android:text="sort_hardest" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/btn_sort_easy" 
       style="?android:attr/buttonBarButtonStyle" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_gravity="center" 
       android:layout_weight="1" 
       android:fontFamily="sans-serif-condensed" 
       android:onClick="onSortChanged" 
       android:textColor="#FFFF" 
       android:text="sort_easiest" 
       android:textSize="20sp" /> 
     </RadioGroup> 


<LinearLayout 
android:id="@+id/sort_layout2" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="right" 
android:orientation="horizontal" 
android:paddingBottom="10dp" > 

      <ImageButton 
       android:id="@+id/btn_view_grid" 
       style="?android:attr/buttonBarButtonStyle" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_margin="0dp" 
       android:layout_weight="1" 
       android:gravity="right" 
       android:onClick="onShowGrid" 
       android:src="@drawable/ic_action_view_as_grid" /> 

      <ImageButton 
       android:id="@+id/btn_view_list" 
       style="?android:attr/buttonBarButtonStyle" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_margin="0dp" 
       android:layout_weight="1" 
       android:gravity="right" 
       android:onClick="onShowGrid" 
       android:src="@drawable/ic_action_view_as_list" /> 

</LinearLayout> 

</LinearLayout> 

<FrameLayout 
     android:id="@+id/preview_fragment" 
     android:background="@android:color/holo_green_dark" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</LinearLayout> 
0

我終於想通了如何實現這一目標。我不得不使用RelativeLayout的代替的LinearLayout正確內以下值:

  • 機器人:layout_gravity = 「中心」
  • 機器人:layout_centerVertical = 「真」
  • 機器人:layout_toLeftOf =「@ + ID/view_group」
  • 機器人:layout_toRightOf = 「@ + ID/label_sort」

這裏的XML:

 <RelativeLayout 
      android:id="@+id/sort_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingBottom="10dp" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/label_sort" 
       android:layout_alignParentLeft="true" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_centerVertical="true" 
       android:layout_marginRight="10dp" 
       android:fontFamily="sans-serif-condensed" 
       android:text="@string/sort_by" 
       android:gravity="center" 
       android:textColor="@color/white80" 
       android:textSize="20sp" /> 

      <RadioGroup 
       android:id="@+id/view_group" 
       style="@android:style/ButtonBar" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:background="@android:color/background_dark" 
       android:orientation="horizontal" 
       android:layout_marginLeft="10dp" 
       android:padding="0dp" > 

       <ImageButton 
        android:id="@+id/btn_view_grid" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_margin="0dp" 
        android:layout_weight="1" 
        android:onClick="onShowGrid" 
        android:src="@drawable/ic_action_view_as_grid" /> 

       <ImageButton 
        android:id="@+id/btn_view_list" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_margin="0dp" 
        android:layout_weight="1" 
        android:onClick="onShowList" 
        android:src="@drawable/ic_action_view_as_list" /> 

      </RadioGroup> 

      <RadioGroup 
       android:id="@+id/sort_group" 
       style="@android:style/ButtonBar" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_toLeftOf="@+id/view_group" 
       android:layout_toRightOf="@+id/label_sort" 
       android:background="@android:color/background_dark" 
       android:gravity="center" 
       android:orientation="horizontal" 
       android:padding="0dp" > 

       <Button 
        android:id="@+id/btn_sort_popular" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_margin="0dp" 
        android:layout_weight="1" 
        android:fontFamily="sans-serif-condensed" 
        android:onClick="onSortChanged" 
        android:text="@string/sort_popular" 
        android:textColor="@drawable/sort_button_selector" 
        android:textSize="20sp" /> 

       <Button 
        android:id="@+id/btn_sort_new" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_weight="1" 
        android:fontFamily="sans-serif-condensed" 
        android:onClick="onSortChanged" 
        android:text="@string/sort_newest" 
        android:textColor="@drawable/sort_button_selector" 
        android:textSize="20sp" /> 

       <Button 
        android:id="@+id/btn_sort_hard" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_weight="1" 
        android:fontFamily="sans-serif-condensed" 
        android:onClick="onSortChanged" 
        android:text="@string/sort_hardest" 
        android:textColor="@drawable/sort_button_selector" 
        android:textSize="20sp" /> 

       <Button 
        android:id="@+id/btn_sort_easy" 
        style="?android:attr/buttonBarButtonStyle" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_gravity="center" 
        android:layout_weight="1" 
        android:fontFamily="sans-serif-condensed" 
        android:onClick="onSortChanged" 
        android:text="@string/sort_easiest" 
        android:textColor="@drawable/sort_button_selector" 
        android:textSize="20sp" /> 
      </RadioGroup> 

     </RelativeLayout> 

     <FrameLayout 
      android:id="@+id/preview_fragment" 
      android:background="@android:color/holo_green_dark" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

    </LinearLayout>