查看传呼机与OnLongClickListener不起作用
我有一个ViewPager
我试图应用onLongClickListener
来改变从不活动的活动的片段。查看传呼机与OnLongClickListener不起作用
mPager1.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
onViewPagerClick();
return false;
}
});
片段置换:
public void onViewPagerClick() {
FragmentTransaction ft5 = getSupportFragmentManager().beginTransaction();
fragment = new SingleProductFragment();
container.setVisibility(View.VISIBLE);
ft5.add(R.id.container, fragment);
// ft.addToBackStack(null);
ft5.commit();
sv.setVisibility(View.INVISIBLE);
addButton.setVisibility(View.INVISIBLE);
}
ViewPager不会消耗单击事件,所以要尽量设置监听器上的图像或容器布局,而不是viewPager的instantiateItem()
。
UPDATE
@Override
public Object instantiateItem(ViewGroup container, int position) {
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
ViewGroup viewPagerItem = (ViewGroup)inflater.inflate(R.layout.viewPager_item, container, false);
ImageView imageView = (ImageView)viewPagerItem.findViewById(R.id.imageView);
viewPagerItem.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Toast.makeText(MainActivity.this, "TEST", Toast.LENGTH_LONG).show();
return false;
}
});
container.addView(viewPagerItem);
return viewPagerItem;
}
我试过它在容器上,因为它是在一个严谨的布局,但它不工作 – user8601021
如果你试过来自'instantiateItem'方法的'container'变量,该变量是viewPager。在我的建议中,我的意思是你的imageView的容器布局。我用一个例子更新了答案。它应该以这种方式:) – Laura
我想要替换一个片段,但是当我在视图中使用getFragmentManager()方法时,寻呼机适配器android studio无法识别该方法 – user8601021
请你可以写更多的代码 – Matteo
我已经把代码在我的Activity类中的onCreate – user8601021
你试过[例如](https://*.com/a/46707510/8244632)的答案? –