ScrollView滚动布局使用原理:
①滚动产生的条件是,里面的内容大于物理尺寸
②ScrollView里面只有一个子元素,这个子元素就是一个线性布局LinearLayout,我们可以在线性布局中添加我们需要的内容,所以ScrollView中得包裹一层,并且线性布局中设计的方向必须纵向;再加任何其他的标签都是错误的,如果加标签,应该在LinearLayout里加
③不要把ScrollView和ListView放在一起用
界面:
方法一(布局资源文件):
布局:
<ScrollView android:id="@+id/scrollView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentEnd="true" android:layout_alignParentStart="true" android:fillViewport="false"> <LinearLayout android:id="@+id/linearlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentStart="true" android:layout_alignParentTop="true" android:orientation="vertical"> <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:src="@drawable/mu" /> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:src="@drawable/mu" /> <ImageView android:id="@+id/imageView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:src="@drawable/mu" /> <ImageView android:id="@+id/imageView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:src="@drawable/mu" /> <ImageView android:id="@+id/imageView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:src="@drawable/mu" /> </LinearLayout> </ScrollView>
方法二(动态生成):
布局资源:只需要一个scrollview和一个linearlayout(指定id)
程序:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); linearLayout = (LinearLayout) this.findViewById(R.id.linearlayout); for (int i = 0; i < 7; i++) { ImageView imageView = new ImageView(this); Drawable drawable = getResources().getDrawable(R.drawable.mu); imageView.setImageDrawable(drawable); linearLayout.addView(imageView, i); } }