Viewpager但没有响应clicklistener /

时间:2013-07-24 04:27:38

标签: java android fragment

我有一个错误,我知道发生了什么但不确定要解决它。

我有一个viewpager,其中每个片段还包含两个片段 - 正面和背面。该应用程序基本上是一个闪卡应用程序,您可以在其中滑动下一张卡,当您单击它时,它转向另一侧。

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

我的外部片段中的听众

           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);

           }

更新metod:

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并确保它永远不会删除任何页面?

1 个答案:

答案 0 :(得分:0)

这个答案花了我3个星期才解决!我做错了,而不是分离和添加片段,你只需使用“替换”。