何が起こっているのかはある程度知っていますが、それを解決する方法がわからないバグがあります。
個々のフラグメントごとにさらに 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 を設定して、どのページも削除されないようにする方法を知っている人はいますか?