2016-04-22 13 views
0

私のレイアウトXMLです:3等しい高さの行

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:weightSum="3"> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 
      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       android:src="@mipmap/banner" /> 
     </RelativeLayout> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:layout_marginEnd="10dp" 
       android:layout_marginStart="10dp" 
       android:layout_marginTop="10dp" 
       android:orientation="horizontal" 
       android:id="@+id/row2"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Menu 1" 
        android:textColor="@color/darkBlue" 
        android:textSize="20sp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/tvCountMyRecipes" 
        android:layout_width="40dp" 
        android:layout_height="wrap_content" 
        android:layout_marginStart="10dp" 
        android:textAlignment="center" 
        android:textColor="@android:color/white" 
        android:textSize="12sp" /> 
       <Space 
        android:layout_width="0dp" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 
       <Button 
        android:id="@+id/btnViewAll1" 
        android:layout_width="wrap_content" 
        android:layout_height="32dp" 
        android:text="View All" 
        android:textColor="@color/blue_360" 
        android:textSize="16sp" /> 
      </LinearLayout> 
      <android.support.v7.widget.RecyclerView 
       android:id="@+id/group1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingBottom="5dp" 
       android:paddingTop="5dp" 
       android:layout_below="@id/row2" /> 
     </RelativeLayout> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:layout_marginEnd="10dp" 
       android:layout_marginStart="10dp" 
       android:layout_marginTop="10dp" 
       android:orientation="horizontal" 
       android:id="@+id/row3"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Menu 2" 
        android:textColor="@color/darkBlue" 
        android:textSize="20sp" 
        android:textStyle="bold" /> 
       <TextView 
        android:id="@+id/tvCountMyFavorites" 
        android:layout_width="40dp" 
        android:layout_height="wrap_content" 
        android:layout_marginStart="10dp" 
        android:textAlignment="center" 
        android:textColor="@android:color/white" 
        android:textSize="12sp" /> 
       <Space 
        android:layout_width="0dp" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 
       <Button 
        android:id="@+id/btnViewAllFavorites" 
        android:layout_width="wrap_content" 
        android:layout_height="32dp" 
        android:text="View All" 
        android:textColor="@color/blue_360" 
        android:textSize="16sp" /> 
      </LinearLayout> 
      <android.support.v7.widget.RecyclerView 
       android:id="@+id/group2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingBottom="5dp" 
       android:paddingTop="5dp" 
       android:layout_below="@id/row3" /> 
     </RelativeLayout> 
    </LinearLayout> 
</ScrollView> 

あなたは私のレイアウトからわかるように、外側LinearLayoutは、すべてlayout_weightが1に等しく、LinearLayoutが等しいweightSumを持っている必要があり3 RelativeLayoutが含まれています現在のレイアウトの動作は次のとおりです。第1のRelativeLayoutはわずかなスペース(約10%)を共有し、&第3のRelativeLayoutは45%の高さを共有します。

どうすれば同じように高さを共有できますか?

+0

'ScrollView'を親として作る必要があるのはなぜですか?あなたがスクロールするとき、これらの3つのビューで何が起こりますか?とにかく 'ScrollView'を作ろうとしています。android:layout_height =" wrap_content "' –

答えて

1

画面全体を占有以下に追加するので、以下のチェック・レイアウト

android:layout_centerVertical="true" 
    android:fadingEdge="none" 
    android:fillViewport="true" 
    android:isScrollContainer="true" 

ScrollView に属性

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_centerVertical="true" 
    android:fadingEdge="none" 
    android:fillViewport="true" 
    android:isScrollContainer="true" 
    android:scrollbars="none"> 

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

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       android:src="@mipmap/banner" /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 

      <LinearLayout 
       android:id="@+id/row2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:layout_marginEnd="10dp" 
       android:layout_marginStart="10dp" 
       android:layout_marginTop="10dp" 
       android:orientation="horizontal"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Menu 1" 
        android:textColor="@color/blue_360" 
        android:textSize="20sp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/tvCountMyRecipes" 
        android:layout_width="40dp" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="5dp" 
        android:layout_marginStart="10dp" 
        android:textAlignment="center" 
        android:textColor="@android:color/white" 
        android:textSize="12sp" /> 

       <Space 
        android:layout_width="0dp" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 

       <Button 
        android:id="@+id/btnViewAll1" 
        android:layout_width="wrap_content" 
        android:layout_height="32dp" 
        android:text="View All" 
        android:textColor="@color/blue_360" 
        android:textSize="16sp" /> 
      </LinearLayout> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/group1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/row2" 
       android:paddingBottom="5dp" 
       android:paddingTop="5dp" /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 

      <LinearLayout 
       android:id="@+id/row3" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:layout_marginEnd="10dp" 
       android:layout_marginStart="10dp" 
       android:layout_marginTop="10dp" 
       android:orientation="horizontal"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Menu 2" 
        android:textColor="@color/blue_360" 
        android:textSize="20sp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/tvCountMyFavorites" 
        android:layout_width="40dp" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="5dp" 
        android:layout_marginStart="10dp" 
        android:textAlignment="center" 
        android:textColor="@android:color/white" 
        android:textSize="12sp" /> 

       <Space 
        android:layout_width="0dp" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 

       <Button 
        android:id="@+id/btnViewAllFavorites" 
        android:layout_width="wrap_content" 
        android:layout_height="32dp" 
        android:text="View All" 
        android:textColor="@color/blue_360" 
        android:textSize="16sp" /> 
      </LinearLayout> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/group2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/row3" 
       android:paddingBottom="5dp" 
       android:paddingTop="5dp" /> 
     </RelativeLayout> 
    </LinearLayout> 
</ScrollView> 
+0

あなたのご意見ありがとうございますが、私は3行の不均一な分布の理由は、最後の2行の高さに影響を与えるリサイクルアイテムの高さによるものだと思います。 – Raptor

+0

私はそうは思わない。私は私の側に適切な出力を得ています。 –

+0

あなたが解決していない場合は私に知らせてください –

0

あなたは、スクロールビューを作るためにあなたのビューポートを入力する必要があり、あなたの使ってscrollviewは

<ScrollView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fillViewport="true"/> 
     //..... your other code here 
</ScrollView> 
+0

感謝しますが、アンドロイド:fillViewport = "true" 'を追加しても表示結果には影響しません。 – Raptor

+0

私はあなたのコードを試してみました –

+0

あなたのご意見ありがとうございますが、私は3行の不均一な分布の理由は、最後の2行の高さに影響を与えるリサイクルアイテムの高さによると思います。 – Raptor

関連する問題