2017-03-08 2 views
0

私は内部にいくつかのImageViews(ヘッダーとフッターのための)を持っているRelativeLayoutを持っています。次に、画像間のスペースに、ネストされたLinearLayout(Also vertical)を含むScrollView(Vertical)を設定します。アンドロイドスタジオ重心

これは、LinearLayoutの内側のボタンを垂直方向に中央に配置することができないことです(これらのボタンは、すでに水平方向の中央に配置されています)。そして、はい、私は重力= "センター"を無駄に使用しようとしました。ここにそれは見えるものです:

<ScrollView 
    android:layout_width = "match_parent" 
    android:layout_height = "match_parent" 
    android:layout_above = "*Image1*" 
    android:layout_below = "*Image2*" 
    > 

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

    <Button><Button/> 
    <Button><Button/> 
    <Button><Button/> 
    <Button><Button/> 

    <LinearLayout/> 
<ScrollView/> 
+0

あなたはどのようにあなたのビューが好きなのかを簡単なスケッチを提供する必要があります。あなたが持っているペイントやシンプルなツールを使ってください。 –

+0

別のものを追加する必要があります。いくつかのボタンを使用するとき、私はそれらを中心に置くことに問題はない。 ScrollViewの境界の外に出て、私が問題を抱えているのです。 –

+0

問題は解決しました。私がしなければならなかったのは、別のLinearLayoutにScrollViewを入れ子にしてそこから限界と重力を確立することでした。とにかく、私を助けてくれた皆様に感謝します。あなたは素晴らしい人です! –

答えて

0

ScrollViewは固定された高さを持つ必要があります。それの中のすべての子供の高さを知っているようにもっとそれは上下にスクロールすることができますどのくらい知っています。したがって、その子はwrap_contentの高さを持つことを強制します。

あなたのケースでは、LinearLayoutの高さはwrap_contentです。 LinearLayoutの高さをLinearLayoutの子にラップしようとしているので、子はLinearLayoutで垂直方向に自由に移動することはできません。したがって、高さがwrap_contentのコンテナに垂直にセンタリングすることはできません。同様に、幅がwrap_contentの場合は、水平に中央に配置することはできません。

これがあなたの疑いを解消することを願っています。 :)質問に対する私の理解あたりとして

+0

はい、それは私に洞察力を与えるのに役立ちましたが、それでも私の問題を解決することはできません。私のScrollViewの高さは固定されており、その領域を中心にLinearLayoutが必要です。私はlayout_gravity = "center"のみを使用しようとしましたが、それは私のレイアウトをスクロールビューの境界からエスケープさせます。 –

+0

このコメントは私を解決に導いたものでした。ありがとう!! –

0

は、次のように行うことができます質問:

スクロールビュー内の線形レイアウトでこれら

android:layout_gravity="center" 
android:gravity="center" 

例追加:

<ScrollView 
    android:layout_above="@+id/footer" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/header"> 

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


     <Button 
      android:id="@+id/btn1" 
      android:text="btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

     <Button 
      android:id="@+id/btn2" 
      android:text="btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/btn1" /> 

     <Button 
      android:id="@+id/btn3" 
      android:text="btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/btn2" /> 

     <Button 
      android:id="@+id/btn4" 
      android:text="btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/btn3" /> 

    </LinearLayout> 
</ScrollView> 

がそれを願っていますが助けてください

+0

この提案で私が持っている問題は、LinearLayoutがScrollView境界から外れることです。悲しいかな、私は最初のボタンにスクロールできません(私の意見のうちの1つは約22個を使用します)。そして、私がスクロールすると、大きな空白になります。 –

+0

線形レイアウトからレイアウトの重力を取り除く – anil

関連する問題