ScrollView视图(滚动视图)可以有效的安排这些组件,浏览时可以进行滚屏的操作
垂直滚动——ScrollView
水平滚动——HorizontalScrollView
常用属性:
android:scrollbars=“none”//禁止出现滚动条
取值:none、 horizontal、 vertical
垂直滚动——ScrollView
水平滚动——HorizontalScrollView
常用属性:
android:scrollbars=“none”//禁止出现滚动条
取值:none、 horizontal、 vertical
ScrollView是单一容器,只能包含一个组件、但可以进行组件的嵌套
本代码结合了ViewPager组件,简单了实现图片的滑动和上方滚动图标。
代码部分:
<span style="font-size:18px;">public class Scroll_ViewActivity extends AppCompatActivity {
private RadioGroup radioGroup;
private RadioButton rb1;
private ViewPager vw;
private List<PhotoView> myData;
private com.jereh.ch04.Adapter.MyViewPagerAdapter ma;
private HorizontalScrollView scrollView;
//Scroll_ViewActivity实现滚动(上下左右)的效果。只能包含单一组件(可以使用布局的嵌套)。
//和ViewPager搭配使用,监听Scroll_ViewActivity中RadioButton和ViewPager的 OnPageChangeListener
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scroll__view);
radioGroup = (RadioGroup) findViewById(R.id.radio);
rb1 = (RadioButton)findViewById(R.id.r1) ;
vw = (ViewPager)findViewById(R.id.vp);
scrollView =(HorizontalScrollView)findViewById(R.id.sv);
vpInit();//添加图片的方法;
vw.addOnPageChangeListener(new myOnPageChangeListener());//滑动图片监听
radioGroup.setOnCheckedChangeListener(new myOnCheckedChangeListener());//选择监听
}
public void vpInit(){
myData = new ArrayList<>();
PhotoView img = new PhotoView(this);
img.setImageResource(R.mipmap.p3);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p1);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p2);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p4);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p5);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p6);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p7);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p8);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p9);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p10);
myData.add(img);
ma = new com.jereh.ch04.Adapter.MyViewPagerAdapter(myData);
vw.setAdapter(ma);
vw.setCurrentItem(0);
}
public class myOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener{
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId == R.id.r1){
//应当用此方法
Toast.makeText(getBaseContext(), rb1.getText().toString(),Toast.LENGTH_SHORT).show();
vw.setCurrentItem(0);
} else if (checkedId == R.id.r2){
Toast.makeText(getBaseContext(),"热点",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(1);
} else if (checkedId == R.id.r3){
Toast.makeText(getBaseContext(),"聊城",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(2);
} else if (checkedId == R.id.r4){
Toast.makeText(getBaseContext(),"图片",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(3);
} else if (checkedId == R.id.r5){
Toast.makeText(getBaseContext(),"烟台",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(4);
} else if (checkedId == R.id.r6){
Toast.makeText(getBaseContext(),"财经",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(5);
} else if (checkedId == R.id.r7){
Toast.makeText(getBaseContext(),"体育",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(6);
} else if (checkedId == R.id.r8){
Toast.makeText(getBaseContext(),"视频",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(7);
} else if (checkedId == R.id.r9){
Toast.makeText(getBaseContext(),"美女",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(8);
} else if (checkedId == R.id.r10){
Toast.makeText(getBaseContext(),"亲子",Toast.LENGTH_SHORT).show();
vw.setCurrentItem(9);
}
}
}
public class myOnPageChangeListener implements ViewPager.OnPageChangeListener{
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
RadioButton radioButton = (RadioButton)radioGroup.getChildAt(position);
radioButton.setChecked(true);
if(position == 5){
scrollView.scrollTo(500,0);//滑动到的坐标
} else if (position == 4){
scrollView.scrollTo(0,0);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
}
}</span>
<span style="font-size:18px;">图片:</span>