2013-09-06 75 views
6

私の主なアクティビティには大きなタブレット画面では下に収まるボタンがいくつかありますが、小さな電話画面には表示されません。私は、ユーザーが他のボタンまでスクロールできるように、画面サイズがそれを必要とする場合、ScrollViewを追加しました:これはちょっと作品ScrollViewの下部に大きなスペースが追加されます

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:background="@drawable/bg" 
      android:gravity="center_horizontal"> 

    <TextView 
     android:id="@+id/trackSelectorText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal"/> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center"> 

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

     <Button      
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="foo" /> 
     <!-- More buttons --> 
     </LinearLayout> 
    </ScrollView> 
</LinearLayout> 

、しかし、私は最後のボタンの下に大きな空白を(持っているつまり、ScrollViewすることができます下にスクロールダウン)。実際のタブレットと電話機構成のエミュレータの両方私がcenterの場合、内部のLinearLayout(center_horizontalではなく)は、スペースがトップとボトムの間に均等に広がっています。このレイアウトを修正するにはどうすればよいですか?

この画像では、ScrollViewが完全にスクロールして最後のボタンを表示していることを想像してほしい。私が意味する空白は右の画像の上にボタン6以下のいずれかです。

enter image description here

+0

の下部に余分なパディングを避けるために、scrollviewにこの属性を使用できますか? – Shark

+0

これを行うと、視覚化が容易になることが期待されます。 – Lennart

+0

'ScrollView'' android:layout_height = "match_parent" 'を試してみてください。私はスペースがスクロールビューの内側にあるとは思っていますが、実際は –

答えて

10

実際に、それは本当にレイアウトに関連していませんでした。私は、帰ってきた背景をコメントアウトしようとしました。そして突然それが働きました。画像化された背景(@drawable/bg)は単純に大きすぎてスクロールを引き起こしました。私は背景を9パッチの画像に変換したので、自動的に拡大縮小することができたので、追加のスペースがなくなりました。 まだ、9パッチなしでこれが達成できたら、XMLファイルでこれを実行できるかどうか聞いてみたいと思います。

1

私は完全に私のcode..Workで確認している:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:background="@drawable/bg" 
     android:gravity="center_horizontal"> 

<TextView 
    android:id="@+id/trackSelectorText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal"/> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center"> 

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

    <Button      
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="foo" /> 
    <!-- More buttons --> 
    </LinearLayout> 
    </ScrollView> 
</LinearLayout> 

あなたを助けるかもしれませ。 ......!

+0

元のコードとの違いは何ですか? –

8

この属性をScrollView要素に追加してみてください。 アンドロイド:fillViewport = "true" を

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:fillViewport="true" > ... </ScrollVIew> 

参考:(私は何かが欠けていない限り)ScrollView Ref

+1

android:layout_height = "match_parent"をandroid:layout_height = "0dp"に変更する必要があります。 – Mieszko

1

あなたはあなたが望むものを描くことができますビュー

android:overScrollMode="never" 
関連する問題