【Android 开发教程】ScrollView滚动视图

本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。

原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/


ScrollView是一种特殊的FrameLayout,使用ScrollView可以使用户能够滚动一个包含views的列表,这样做的话,就可以利用比物理显示区域更大的空间。有一点需要注意一下,那就是ScrollView只能包含一个子视图view或ViewGroup(这个ViewGroup通常是LinearLayout)。

不要混合使用ListView和ScrollView。ListView被设计用来显示一些相关的信息,同时,ListView也已经被优化了去显示大量的列表lists。

下面的main.xml显示了一个包含LinearLayout的ScrollView,在LinearLayuout中又包含了一些Button和EditText视图:

[html] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">
  5. <LinearLayout
  6. android:layout_width="fill_parent"
  7. android:layout_height="wrap_content"
  8. android:orientation="vertical">
  9. <Button
  10. android:id="@+id/button1"
  11. android:layout_width="fill_parent"
  12. android:layout_height="wrap_content"
  13. android:text="Button1"/>
  14. <Button
  15. android:id="@+id/button2"
  16. android:layout_width="fill_parent"
  17. android:layout_height="wrap_content"
  18. android:text="Button2"/>
  19. <Button
  20. android:id="@+id/button3"
  21. android:layout_width="fill_parent"
  22. android:layout_height="wrap_content"
  23. android:text="Button3"/>
  24. <EditText
  25. android:id="@+id/txt"
  26. android:layout_width="fill_parent"
  27. android:layout_height="600dp"/>
  28. <Button
  29. android:id="@+id/button4"
  30. android:layout_width="fill_parent"
  31. android:layout_height="wrap_content"
  32. android:text="Button4"/>
  33. <Button
  34. android:id="@+id/button5"
  35. android:layout_width="fill_parent"
  36. android:layout_height="wrap_content"
  37. android:text="Button5"/>
  38. </LinearLayout>
  39. </ScrollView>
以上代码在模拟器上的效果图:

【Android 开发教程】ScrollView滚动视图

因为EditText自动获得了焦点,它充满了整个activity(因为它的高度被设置成了600dp)。如果想阻止这个EditText获得焦点,那么只需在<LinearLayout>元素中添加以下两个属性:

[html] view plain copy
  1. <LinearLayout
  2. android:layout_width="fill_parent"
  3. android:layout_height="wrap_content"
  4. android:orientation="vertical"
  5. android:focusable="true"
  6. android:focusableInTouchMode="true"
  7. >
现在,就可以看到那些button按钮视图了,同时也可以滚动这些视图列表。就像下面展示的那样:

【Android 开发教程】ScrollView滚动视图

但是有的时候可能想要这个EditText自动获取焦点,但是又不想软键盘自动地显示出来。想要阻止软键盘的出现,可以在AndroidManifext.xml中的<activity>节点中,添加如下的属性:

[html] view plain copy
  1. <activity
  2. android:name=".LayoutActivity"
  3. android:label="@string/app_name"
  4. <!--注意这行代码-->
  5. android:windowSoftInputMode="stateHidden"
  6. >
  7. <intent-filter>
  8. <actionandroid:name="android.intent.action.MAIN"/>
  9. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  10. </intent-filter>
  11. </activity>

你可能感兴趣的:(scrollview)