Android 高级组件ScrollView和ViewPager
来源:互联网 发布:埃米特矩阵 编辑:程序博客网 时间:2024/04/27 21:21
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>
0 0
- Android 高级组件ScrollView和ViewPager
- Android高级控件——GridView ScrollView ViewPager (上)
- android高级组件(1)ProgressBar,SeekBar,ScrollView
- android scrollview viewpager 冲突
- ViewPager和ScrollView冲突
- Viewpager和scrollview联动
- scrollview和viewpager联动
- android嵌套使用ViewPager和ScrollView焦点冲突解决方案
- Android -下拉刷新,ViewPager和ScrollView嵌套滚动问题解决方案
- Android:ScrollView中嵌套ViewPager和ListView示例
- android嵌套使用ViewPager和ScrollView焦点冲突解决方案
- android组件之ScrollView
- Android Widget组件ScrollView
- Android事件机制ScrollView,ViewPager
- Android:ViewPager高级使用
- Viewpager和各种其他组件的滑动冲突问题,例如百度地图,scrollview等
- android中的高级组件(一)(progressBar,SeekBar,RatingBar,ScrollView,HorizontalScrollView,AutoCompleteTextView)
- android中viewpager,scrollview的嵌套问题
- 也谈USB重定向的方式
- poj 3295 Tautology
- POJ2533 Longest Ordered Subsequence
- Ural 1018 Binary Apple Tree [树形dp]
- 节奏还是要稳啊
- Android 高级组件ScrollView和ViewPager
- Problem : 救公主续
- JavaScript事件
- 【ReactNative】全局错误捕捉与处理
- 状态压缩(棋盘问题+hdu3254+poj1185+hud2553)
- 前缀、中缀、后缀表达式(栈)
- 2016 多校 Multi-University Training Contest 4 Bubble Sort
- [LeetCode] 69. Sqrt(x)
- 【数组13】数组中重复的数字