java - Viewpager 但不响应 clicklistener/

标签 java android fragment

我有一个错误,我知道是怎么回事,但不确定是否要解决它。

我有一个 viewpager,其中每个单独的 fragment 还包含另外两个 fragment ——一个正面和一个背面。该应用程序基本上是一个抽认卡应用程序,您可以在其中滑动以获取下一张卡片,当您单击它时它会转向另一面。

我的问题: 我在两侧都有一组单选按钮。如果用户选中一个按钮并单击卡片,卡片应该会转动,并且新选择的单选按钮选项也应该出现在卡片的另一侧。两边按钮的功能是一样的——我只是把它放在两边,这样用户就可以选择更改单选按钮,无论他/她是在闪存卡的正面还是背面。如果您选择一个单选按钮,则单选按钮在另一侧发生变化的部分仅在每张卡片都是新的时才有效。如果您滚出屏幕外限制并向后滑动,该功能将不再起作用(另一侧的单选按钮不会自动更改为新选择的单选按钮)。但是因为我的屏幕外限制是 2,如果你滚动到紧邻的下一张卡片然后向后滚动,它仍然有效。

我的听众在我的外部 fragment 中

           final ViewAnimator viewAnimator1 = (ViewAnimator) viewFlipper;
       viewAnimator1.setOnClickListener(new OnClickListener(){
           @Override
           public void onClick(View v){
               ((definitionFragment) definitionFragment1).update();
               ((wordFragment) wordFragment1).update();            
               AnimationFactory.flipTransition(viewAnimator1, FlipDirection.RIGHT_LEFT);
               final FragmentTransaction transaction3 = getChildFragmentManager().beginTransaction();
               transaction3.detach(definitionFragment1);
               transaction3.add(R.id.fragment_definition, definitionFragment1);
               final FragmentTransaction transaction4 = getChildFragmentManager().beginTransaction();
               transaction4.detach(wordFragment1);
               transaction4.add(R.id.fragment_word, wordFragment1);

           }

更新方法:

public void update(){
    DatabaseHandler db1 = new DatabaseHandler(getActivity());
     List<VocabWord>words1 = db1.getAllVocabWords();
     switch(words1.get(pagenumber).getCategory())
        {
        case 0:
            mDefaultButton.setChecked(true);
            break;

        case 1:
            mRedButton.setChecked(true);
            break;

        case 2:
            mYellowButton.setChecked(true);
            break;


        case 3:
            mGreenButton.setChecked(true);
            break;

        }


}

有人知道如何处理这个问题吗?或者有谁知道如何设置一个不存在的 offscreenpagelimit 并确保它永远不会删除任何页面?

最佳答案

这个答案花了我整整 3 周的时间来解决!我做错的是你没有分离和添加你只是简单地使用“替换”的 fragment 。

关于java - Viewpager 但不响应 clicklistener/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17825204/

相关文章:

java - 如何将两个数组合并成各自的二维数组?

Java:catch 的含义(final SomeException e)?

java - 为什么默认的 Object.toString() 包含哈希码?

android:自定义 CursorAdapter 中的样式 ListView 项目

java - 包含 ListView 的动态导航选项卡数量

android - 显示 DialogFragment 导致 IllegalStateException

java - JVM 如何解释内存参数?

android - 从 Android 中的 onActivityResult 中提示语音识别

android - 为什么 MaterialButton 文本不包含完整空间?

android - 在 ViewPager fragment 中使用 Google map V2 时崩溃?