我无法滚动自定义视图

时间:2011-07-21 17:38:00

标签: java android android-layout view scrollview

    <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 Project并编辑了main.xml,如上所述。 然后我自定义视图来绘制图像。 要查看滚动自定义视图的效果,我将如上所述设置宽度和高度。 现在我可以在自定义视图中看到图像,但它不会滚动。 你能帮帮我解决问题吗? 我应该添加更多东西吗?

1 个答案:

答案 0 :(得分:0)

ScrollView与其内容之间存在相互影响。例如,如果您将此TextView插入ScrollView,而不是NwcDrawingArea小部件:

<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其文字比屏幕长,而滚动型显示,让你看到的TextView 的隐藏部分的文字的程度滚动条。现在,更改TextView layout_width =“2000dp”。 TextView成为一个全屏绿色区域,其中有一行文本从屏幕右侧运行。当然,ScrollView没有显示水平滚动条。但是,ScrollView也没有显示垂直滚动条,即使我们将TextView的大小设置为比屏幕长得多。 ScrollView正在尝试确定其内容的视觉上有趣的部分,因此您需要了解子类化的任何窗口小部件的行为。

例如,ScrollView以您期望它使用TextView的方式尊重LinearLayout和RelativeLayout的布局大小。实际上,创建LinearLayout或RelativeLayout是常见的 - 而不是像TextView这样的视图 - ScrollView的子视图。将TextView放在固定高度的LinearLayout中,你应该得到你期望的行为。