我正在开发一个项目,我在一个屏幕上使用VIEw Pager,如下所示:
但是你可以在那里看到,有一个上层布局,其中列出了根据显示的页面选择的年份.当我们滑动视图寻呼机时,年份也将根据显示的页面索引更改为下一个.我必须在几年的TextVIEws上实现Click *** 作,在其上将显示相应的VIEw Pager Page.但它怎么能实施呢?意味着当我们调用另一个VIEw时,我们如何在VIEw Pager中显示特定的页面索引.意味着当我们选择1998年时,那么页面将显示对应于1998年.我已经编写了一个代码,但这对我不起作用.
码:
for (int i = 0; i < (OvervIEw_Years.size()); i++) { tvYear[i] = new TextVIEw(OvervIEw_New.this); img_Pagination[i] = new ImageVIEw(OvervIEw_New.this); //yearValue = OvervIEw_Years.get(i).toString(); linearLayout.LayoutParams params = new linearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); // params.weight = 0.5f; params.gravity = Gravity.CENTER_VERTICAL; params.setmargins(40, 4, 0, 0); // tvYear[i].setLayoutParams(new // LayoutParams(LayoutParams.WRAP_CONTENT, // LayoutParams.WRAP_CONTENT)); tvYear[i].setLayoutParams(params); // tvYear[i].setText(OvervIEw_Years.get(i).toString()); tvYear[i].setText(OvervIEw_Years.get(i).toString()); tvYear[i].setTag(OvervIEw_Years.get(i).toString()); tvYear[i].setGravity(Gravity.CENTER); tvYear[i].setTypeface(null, Typeface.BolD); tvYear[i].setTextcolor(color.WHITE); tvYear[i].setID(i); tvYear[i].setpadding(2, 0, 1, 17); //tvYear[i].setTag(OvervIEw_Years.get(i-1).toString()); final TextVIEw tv = tvYear[i]; **tvYear[i].setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw arg0) { for(int i=0;i<((VIEwGroup)yearhorizontalscrollview.getChildAt(0)).getChildCount();i++){ if(((TextVIEw)arg0)== ((VIEwGroup)yearhorizontalscrollview.getChildAt(0)).getChildAt(i)){ currentposition = i; } }** onYearSelect(((TextVIEw)arg0).getText().toString()); } }); layout_Years.addVIEw(tvYear[i]); linearLayout.LayoutParams paramsPagination = new linearLayout.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); // params.weight = 0.5f; paramsPagination.gravity = Gravity.CENTER_VERTICAL; paramsPagination.setmargins(5, 2, 0, 0); img_Pagination[i].setLayoutParams(paramsPagination); /*if (i == 0) { img_Pagination[0] .setBackgroundResource(R.drawable.pagination_selected); } else {*/ img_Pagination[i] .setBackgroundResource(R.drawable.pagination_unselected); //} img_Pagination[i].setID(i); layout_Pagination.addVIEw(img_Pagination[i]); tvYear[0].setBackgroundResource(R.drawable.selector_x); /*tvYear[0] .setBackgroundResource(R.drawable.selector_x);*/ //tv_OvervIEw_AllYears.setBackgroundResource(R.drawable.selector_bg_big_new); count=-1; }
Thnx提前.
解决方法:
您应该能够在OnClickListener中使用setCurrentItem方法(下面的语法和文档),并且您的vIEwpager会自动滚动(如果smoothScroll未停用)到新位置.
VIEwPager.setCurrentItem(int index);ORVIEwPager.setCurrentItem(int index, boolean smoothScroll);
在这种情况下,您将用您想要的索引替换索引.因此,您可能还需要一个存储年份和页面之间关系的数组,或者您可以在年份中设置TAG(比如说位置),然后在OnClickListener上可以检索TAG转到该位置.
有关详细信息,请参阅ViewPager docs
总结以上是内存溢出为你收集整理的如何在android中点击按钮时显示视图寻呼机的特定页面全部内容,希望文章能够帮你解决如何在android中点击按钮时显示视图寻呼机的特定页面所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)