设置水平、垂直滚动条自动滚动
2013-07-22 11:15
357 查看
在做一个小项目时遇到需要随着手势翻页的同时,上面导航栏也需要随着而滑动,这样就需要在手势事件中调用滚动条的水平滑动事件。
总体效果图如下:
滚动部分布局XML片段:
部分代码:
以上是水平自动滚动的部分代码,垂直类似,做对应改动即可。
总体效果图如下:
滚动部分布局XML片段:
<HorizontalScrollView android:id="@+id/horizonMenu" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="none" > <LinearLayout android:id="@+id/chart_navigate" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_gravity="top" android:background="#ffffff" android:orientation="horizontal" android:layout_margin="0dp" android:layout_marginBottom="1dip" android:padding="0dp"> </LinearLayout> </HorizontalScrollView>
部分代码:
/** * the layout of chart. * * @author liangliu * */ public class ChartFramgment extends Fragment { private static View viewMain; // the loading dialog after completed to login private static LinearLayout linearLayout; private static int navigateWidth = 0; private static HorizontalScrollView horizontalScrollView; private final static Handler handler = new Handler(); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); // get the view by id in the framgment. viewMain = inflater.inflate(R.layout.chart, container, false); DisplayMetrics displaymetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay() .getMetrics(displaymetrics); navigateWidth=(int)(displaymetrics.widthPixels*0.8); horizontalScrollView = (HorizontalScrollView) viewMain .findViewById(R.id.horizonMenu); horizontalScrollView .setLayoutParams(new android.widget.RelativeLayout.LayoutParams( navigateWidth, 100)); linearLayout = (LinearLayout) viewMain .findViewById(R.id.chart_navigate); linearLayout.setOrientation(LinearLayout.HORIZONTAL); return viewMain; } /** * 手势事件,滑动到下一页 */ public static void slipToNext() { //滑动到下一页d的相关处理 //...... //导航滚动条随着水平滚动 ,这里必须放到handler里面异步处理滚动才会到位,否则滚动会是上次滚动的结果,总差那么一点。 handler.post(scrollHandler); } /** * slip back to the pre_page */ public static void slipToBack() { //滑动到上一页d的相关处理 //...... //导航滚动条随着水平滚动 handler.post(scrollHandler); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } private static Runnable scrollHandler = new Runnable() { @Override public void run() { //计算滚动偏移量 int offSet = (linearLayout.getMeasuredWidth()) - horizontalScrollView.getWidth(); if (offSet < 0) { offSet = 0; } //滑到制定位置 horizontalScrollView.scrollTo(offSet, 0); } }; }
以上是水平自动滚动的部分代码,垂直类似,做对应改动即可。
相关文章推荐
- iOS - 支持水平 / 垂直显示自动滚动的跑马灯控件 --- SKAutoScrollLabel 的使用和实现
- 自动设置ComboxBox控件或ListBox控件 水平滚动条
- 本号讯 | 微软和百度携手推进全球自动驾驶技术; 微软发布新一代可垂直可水平滚动的Arc鼠标
- 自动滚动的RecyclerView(水平和垂直方向)
- [MFC]RichEdit响应回车换行,自动水平/垂直滚动
- MFC中的CButton按钮是否可用设置与CEdit设置垂直滚动条自动滚动
- TextView取消自动换行并设置水平滚动
- TextView取消自动换行并设置水平滚动
- SetScrollSizes设置滚动视的映射模式,总尺寸,以及水平和垂直滚动量
- QScrollBar样式设置了height后,QTableView、QComobox将不会显示垂直滚动条
- MFC编辑框自动换行,垂直滚动条自动下移
- 在HTML页面中设置表格水平和垂直方向都居中的方法【原
- 去掉iframe的水平滚动条而保留垂直滚动条
- [Android] ScrollView 垂直滚动控件和 HorizontalScrollView 水平滚动控件的使用
- android中TextView中如何设置水平滚动效果
- UITableView启动后自动设置滚动的位置
- 首页随着滚动栏的下拉,自动加载产品的设置------Holiday模板
- 设置div水平垂直居中
- 编辑框控件:MFC编辑框自动换行,垂直滚动条自动下移
- :1)复选框中文字在左边;2)最下部为水平滚动条。水平滚动条最小值为4、最大值为72;且在窗体Load事件中通过代码设置;3)单击任何复选框,标签上文字样式都发生变化;4)单击任意单选按钮,标签上文字