界面是这样的:
我用tab+viewpager实现了一个这种选项卡加滑动的效果,然后实际上是每次都是按下上面那个consume或者income才inflate一个跟其对应的layout,所以我每次inflate的layout里面所有的button都是unchecked状态。(consume选项会inflate consume.layout;income选项会inflate income.layout)
但是我想要实现:这个页面可以接收一个参数(这个参数指定哪个button需要变成checked状态),当进入这个页面时某个button直接就处于checked状态了,就像下面这样:
然后我思路的问题是 我不知道该怎样得到inflate consume.layout或inflate income.layout后返回的view,所以就无法(Button)view.findViewById(R.id.button).setChecked(true)。
问题:
1.跪求大佬给个解决办法,或者其他能实现这种效果的思路。
2.另:这里的Button其实我是想弄一个radiobutton的,但是我又不想用radiogroup默认的linearlayout,然后就自己弄的一个relativelayout,但这样单选就失效了,我看stackoverflow上说只能手动给每个button添加一个onclicklistener事件实现单选。请问还有其他解决方法可以让它恢复单选吗?
高洛峰2017-04-18 10:32:56
Two solutions:
1
pageAdapter.instantiateItem(viewpager, position)
2 Using EventBus
PHPz2017-04-18 10:32:56
If you are using FragmentPagerAdapter
, then you don’t need to get the specific View, just get the corresponding Fragment, and then provide methods in the Fragment to update the View inside.
ViewPager can refer to ViewPager+Fragment to obtain a Fragment instance. When a piece of data in a certain Fragment changes, my answer to the question is how to partially refresh this data.
PHP中文网2017-04-18 10:32:56
Find it in your adapter:
@Override
public Object instantiateItem(ViewGroup container, int position) {
return super.instantiateItem(container, position);
}
The object returned here is your new page, and you can get your button under fvb