HorizontalScrollView是一个FrameLayout ,这意味着你只能在它下面放置一个子控件,这个子控件可以包含很多数据内容。有可能这个子控件本身就是一个布局控件,可以包含非常多的其他用来展示数据的控件。这个布局控件一般使用的是一个水平布局的LinearLayout 。
先把本文运行后的代码结果贴出来:
其mian_activity.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.horizontalscollview.MainActivity">
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/horizontalScrollView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/liner1">
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
其行布局 item_view.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView1"
android:layout_gravity="center_vertical"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv"/>
</LinearLayout>
MainActivity 的代码如下:
public class MainActivity extends AppCompatActivity {
private LinearLayout linearLayout;
private int[] image={R.drawable.jwss_img,R.drawable.jwss_img,
R.drawable.jwss_img,R.drawable.kpds_img,R.drawable.kpds_img};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
linearLayout= (LinearLayout) findViewById(R.id.liner1);
//开始添加数据,第一个参数为行布局ID ,第二个参数为这个行布局需要存放到哪个父容器
for(int i=0;i<image.length;i++) {
View view = LayoutInflater.from(this).inflate(R.layout.item_view, null);
//通过view寻找ID实例化控件
ImageView img = (ImageView) view.findViewById(R.id.imageView1);
TextView tv = (TextView) view.findViewById(R.id.tv);
img.setImageResource(image[i]);
tv.setText("第" + (i + 1) + "张图片");
//把布局放到linearlayout里面
linearLayout.addView(view);
}
}
}