我有一个虫子,我知道怎么回事,但不知道该怎么解决。
我有一个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并确保它不会删除任何页面吗?
最佳答案
这个答案花了我整整三个星期才解决!我做错的不是分离和添加片段,而是使用“replace”。
关于java - Viewpager,但未响应clicklistener/,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17825204/