查看传呼机与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); 
} 
+0

请你可以写更多的代码 – Matteo

+0

我已经把代码在我的Activity类中的onCreate – user8601021

+0

你试过[例如](https://*.com/a/46707510/8244632)的答案? –

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; 
} 
+0

我试过它在容器上,因为它是在一个严谨的布局,但它不工作 – user8601021

+0

如果你试过来自'instantiateItem'方法的'container'变量,该变量是viewPager。在我的建议中,我的意思是你的imageView的容器布局。我用一个例子更新了答案。它应该以这种方式:) – Laura

+0

我想要替换一个片段,但是当我在视图中使用getFragmentManager()方法时,寻呼机适配器android studio无法识别该方法 – user8601021