2013-04-10 10 views
24

エミュレータを起動してこのコードを使用する画面に入ると、ほとんどのテキスト情報が表示されますが、画面の上部が切り取られます一番下のスペース。ScrollViewが上部を切り落とし、スペースを最下部に残します

ここにコードがあります。

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:visibility="visible" 
    android:fillViewport="true" 
    android:id="@+id/backgroundImage" > 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_gravity="center" 
    android:padding="10dip" > 

    <ImageView 
     android:id="@+id/earthSymbolImageView" 
     android:layout_width="25dp" 
     android:layout_height="25dp" 
     android:src="@drawable/earthsymbol" /> 

    <TextView 
     android:id="@+id/earth_content1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/earth_title" 
     android:gravity="center" 
     android:textColor="#FFFFFF" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/earth_content2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/earth_text" 
     android:textColor="#FFFFFF" /> 

    <Button 
     android:id="@+id/backButton" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/back" /> 

    </LinearLayout> 
    </ScrollView> 

なぜこのようなことが起こっているのですか?

+0

質問でスクリーンショットをアップロードします。 – MKJParekh

+0

あなたはこのアンドロイドを削除しようとしました:padding = "10dip"そして、アンドロイド:margin = "10dip"を使用してください。 – QAMAR

+0

あなたのスクロールビューで 'android:fillViewport =" true "'行を削除してから、チェックしてみてください。 – GrIsHu

答えて

-3

TextViewをスクロール可能にしたい場合、ScrollViewをこの2つの要素の周りに置くのはなぜですか?

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_gravity="center" 
    android:padding="10dip" > 


    <ScrollView> 
    <ImageView 
     android:id="@+id/earthSymbolImageView" 
     android:layout_width="25dp" 
     android:layout_height="25dp" 
     android:src="@drawable/earthsymbol" /> 

    <TextView 
     android:id="@+id/earth_content1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/earth_title" 
     android:gravity="center" 
     android:textColor="#FFFFFF" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/earth_content2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/earth_text" 
     android:textColor="#FFFFFF" /> 

    </ScrollView> 

    <Button 
     android:id="@+id/backButton" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/back" /> 



    </LinearLayout> 
+0

私は問題を解決しました。解決策はTextViewの周りにのみScrollViewを配置することでした。 – Maynn

+0

plsが私の答えをあなたの問題を解決したとマークしています:) – n4tiVe

+1

ScrollViewの属性が不足しています - さらにScrollViewは直接的なものではありません – Graeme

24

私は問題を引き起こしたcenterに設定HorizontalScrollView重力を有しScrollView.内にネストHorizontalScrollViewと同じ問題がありました。それを削除するだけで問題は解決しました。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

<HorizontalScrollView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center"> 

    <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 

     <TextView 
       android:layout_width="1000dp" 
       android:layout_height="1000dp" 
       android:gravity="center" 
       android:layout_gravity="center" 
       android:text="New Text"/> 
    </LinearLayout> 
</HorizontalScrollView> 
+0

これはネストされたスクロールビューを使用していなくても機能します。私はスクロールビューの中に線形レイアウトがあり、これは私のために働いた。 – PFranchise

22

これは、LinearLayoutのlayout_gravityが原因で発生しています。 LinearLayoutはScrollViewの内部にあるので、おそらく水平方向に中心を置くようにしようとしているにすぎません(ScrollView内を垂直にセンタリングすることはできません)。問題はEditTextrequestFocusだった私の場合は

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_gravity="center_horizontal" 
    android:padding="10dip" > 
+0

私は同じ問題を抱えていました。私はandroid:layout_gravity = "center_vertical"をLinearLayoutでScrollView内で使用していました。 –

+1

同じこと。線形レイアウトは、水平に配置するのではなく、中央に配置しました。ありがとう! :D これは受け入れられる回答である必要があります。 –

+0

ありがとう、私は何千もの属性の組み合わせを試している間に夢中になるだろうと思った – PhilLab

0

:水平にこのようなセンターにごのLinearLayoutを指定すると、トリックを行う必要があります。

あなたのケースでは、彼らの番号はEditTextなので、問題は他のものです。スクロールビューで上端をカットする問題が発生している場合は、EditTextからすべてrequestFocusを削除してください。

1

その非常に簡単 - あなたは自分の親コンテナのScrollViewへのLinearLayoutからlayout_gravityを移動する必要があります。

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:visibility="visible" 
    android:fillViewport="true" 
    android:id="@+id/backgroundImage" 
    android:layout_gravity="center" > 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:padding="10dip" > 
5

私はこの問題を修正が見つかっおよびテストした最高の答えは@hadiが、この中で与えたものです質問:答えを再開 no gravity for scrollview. how to make content inside scrollview as center

  • はRelativeLayoutの内側にあなたのScrollViewを入れてください。
    • アンドロイド:layout_height = "wrap_content"
    • アンドロイド:ScrollViewで
    • は、次のように設定し
  • layout_centerVertical = "true" をScrollView中にあなたの垂直のLinearLayoutを入れてください。

コードは次のようになります。可能であれば、

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ScrollView 
     android:id="@+id/scrollView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true"> 

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

      ... 

     </LinearLayout> 
    </ScrollView> 
</RelativeLayout>