2011-07-21 7 views
0
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:orientation="vertical"> 

    <ScrollView android:id="@+id/scroll" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:fillViewport="true"> 

     <adam.music.testfont.NwcDrawingArea android:id="@+id/NwcDrawingArea" 
       android:layout_height="2000dp" 
       android:layout_width="2000dp" 
      /> 
      </ScrollView> 
    </LinearLayout> 

Androidプロジェクトを作成し、上記のようにmain.xmlを編集しました。 そして、イメージを描画するためのビューをカスタマイズしました。 カスタマイズされたビューをスクロールする効果を見るために、上記のように幅と高さを設定します。 イメージをカスタマイズしたビューで見ることができますが、スクロールしません。 問題の原因を教えてください。 さらに何かを追加する必要がありますか?私のカスタマイズしたビューをスクロールできません

答えて

0

ScrollViewとそのコンテンツの間には相互作用があります。たとえば、代わりにあなたのNwcDrawingAreaウィジェットの、場合、あなたはあなたのScrollViewにこののTextViewを挿入:

<TextView android:text="8This is a lot of text 7This is a lot of text 6This is a lot of text 5This is a lot of text 4This is a lot of text 3This is a lot of text 2This is a lot of text 1This is a lot of text" 
android:layout_width="10dp" 
android:layout_height="2000dp" 
android:background="#FF00FF00" 
/> 

あなたは、そのテキスト長い画面よりもスキニー緑の縦のTextView、そしてScrollViewを聞かせてスクロールバーを示して表示されますテキストの範囲で、TextView の隠れた部分が表示されます。さて、TextView layout_width = "2000dp"を変更してください。 TextViewは、画面の右側から1行のテキストを含むフルスクリーンの緑色の領域になります。もちろん、ScrollViewは水平スクロールバーを表示しません。ただし、ScrollViewは、TextViewのサイズを画面よりもずっと長くしていても、垂直スクロールバーを表示しません。 ScrollViewはそのコンテンツの視覚的に興味深い部分を決定しようとしているので、サブクラス化しているウィジェットの動作を理解する必要があります。

たとえば、ScrollViewは、LinearLayoutおよびRelativeLayoutのレイアウトサイズを、TextViewで動作すると予想される方法で尊重します。実際には、TextViewなどのビューではなく、ScrollViewの子であるLinearLayoutまたはRelativeLayoutを作成するのが一般的です。 TextViewを固定高さのLinearLayoutにドロップすると、期待した動作が得られるはずです。

+0

@Adamこれはまだ試しましたか? – cdhabecker

関連する問題