使用fragment嵌套FragmentTabHost实现筛选切换框架

想要实现一个效果筛选切换的导航页,不废话看图:

 

 

思路一:用的FragmentTabHost添加两个fragmentA,fragmentB,点击商品切换,移除fragmentA,fragmentB,加载fragmentC,fragmentD.
mTabHost.removeAllViews();
mTabHost.clearAllTabs();
mTabHost.setup(this, getSupportFragmentManager(), R.id.frame_content);
int pageCount = fragmentList.length;
for (int i = 0; i < pageCount; ++i) {
TabHost.TabSpec spec = mTabHost.newTabSpec(getString(tabCommodityInfoList[i])).setIndicator(getString(tabCommodityInfoList[i]));
mTabHost.addTab(spec, fragmentList[i], null);
}
 mTabHost.setCurrentTab(0);

 

若不加mTabHost.clearAllTabs();会出现一个问题,我点击商品切换时,当前选中页会没有数据,也就是load more会不出现。

思路二:

2个fragment嵌套FragmentTabHost.

 

========================================================================================

 

接下来又遇到新的问题,分类页有一个GridView,要求实现点击分类控制gridview显示隐藏,如下图:

  

不熟悉API,辗转了2天。

难点(水平较高者可不看):

1.获取FragmentTabHost里的Fragment中的控件:

开始想的是通过mTabHost对象获取,但是好像获取不到,只好通过getSupportFragmentManager().findFragmentByTag(tag)的方式获取Fragment对象。

调用前需要先调用boolean isOk = getSupportFragmentManager().executePendingTransactions();

返回值isOk在onTabChanged里是true,在mTabHost.getTabWidget().getChildAt(1).setOnClickListener里是false,我没深究,直接没判断,可以实现功能即可。

2.控制GridView的显示隐藏,我是在Fragment类里写了一个方法用来记录状态,再通过mTabHost设置。

 

另外:欢迎各位猿友前来评论指教~~

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值