3

何が起こっているのかはある程度知っていますが、それを解決する方法がわからないバグがあります。

個々のフラグメントごとにさらに 2 つのフラグメント (表側と裏側) が含まれるビューページャーがあります。このアプリは基本的に、スワイプして次のカードを表示できるフラッシュカード アプリで、クリックすると反対側に変わります。

私の問題: 両側で使用できる一連のラジオボタンがあります。ユーザーがボタンをチェックしてカードをクリックすると、カードが回転し、新しく選択したラジオ ボタンの選択肢がカードの反対側にも表示されます。両側のボタンの機能は同じです。ユーザーがフラッシュカードの前面または背面にいるかどうかに関係なく、ラジオボタンを変更できるように、両側に配置しました。ラジオボタンを選択すると反対側のラジオボタンが変わる部分は、各カードが新鮮なときにのみ機能します。オフスクリーンリミットを超えてスクロールして戻ると、機能が機能しなくなります (反対側のラジオボタンは、新しく選択されたものに自動的に変更されません)。しかし、私のオフスクリーン リミットは 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);

           }

更新方法:

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 を設定して、どのページも削除されないようにする方法を知っている人はいますか?

4

1 に答える 1

0

この答えは、解決するのにちょうど3週間かかりました! 私が間違っていたのは、フラグメントを切り離して追加する代わりに、単に「置換」を使用することです。

于 2013-08-15T20:53:05.390 に答える