pul*_*rao 1 android android-layout android-listview android-fragments android-viewpager
我有ViewPager一个ListView.一切正常(列表视图中的垂直滚动/水平滚动ViewPager).但我在列表视图项上捕获click事件时遇到问题(viewpager填充listview项).
到目前为止我试过了
将列表视图设置为可单击
扩展Viewpager并添加了一个手势检测器,它检测水平滚动并设置
requestDisallowInterceptTouchEvent(false)手势是否不是水平滚动
设置setOnItemClickListener为我的列表视图
问题:setOnItemClickListener 没有被调用
我也试图将onclick listner直接添加到viewPager但是listner没有被调用aswell
基本上我正在寻找一种溶剂,我可以检测到listview项目或页面查看器上的点击并启动意图.
PS关于android如何处理视图上的触摸事件的任何链接也将受到赞赏
你接近,但不是设置一个onClickListener对ViewPager自己,你必须设定onClickListener在视图ViewPager的PagerAdapter(你必须扩展).
在你ListView的getView()实例化的地方ViewPager,设置一个适配器到你的PagerAdapter(这里称为"ExtendedPagerAdapter"):
ViewPager pager = (ViewPager) container.findViewById(R.id.pager);
ExtendedPagerAdapter adapter = new ExtendedPagerAdapter(context, list);
pager.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
然后,在您的ExtendedPagerAdapter类中,您覆盖(除其他外)instantiateItem(ViewGroup, int).
@Override
public Object instantiateItem(ViewGroup container, int position) {
LayoutInflater inflater = (LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View theView = list.get(position).getView(inflater);
theView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//perform action
}
});
container.addView(theView, 0);
return theView;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5116 次 |
| 最近记录: |