java - tab+viewpager中获取view中的控件问题
黄舟
黄舟 2017-04-18 10:30:56
0
3
455

界面是这样的:

我用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事件实现单选。请问还有其他解决方法可以让它恢复单选吗?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆(3)
小葫芦

兩種解決方法:

1

pageAdapter.instantiateItem(viewpager, position)

2 使用EventBus

PHPzhong

如果你使用的是FragmentPagerAdapter, 那麼不用獲取具體的View, 獲取對應的Fragment就好了, 然後在Fragment裡面提供方法更新裡面的View.

ViewPager取得Fragment實例可以參考ViewPager+Fragment,某個Fragment裡面的一條數據發生變化,如何局部刷新這條數據這個問題裡面我的回答.

洪涛

在你的adapter裡面找到:

@Override
public Object instantiateItem(ViewGroup container, int position) {
    return super.instantiateItem(container, position);
}

這裡回傳的物件就是你的新頁面,fvb下就可以得到你的按鈕了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!