nmr*_*nmr 2 android android-widget
我正在使用TabHost来渲染一些标签.在XML定义中,一切都设置为〜通常,RelativeLayout是TabHost的FrameLayout的唯一子节点.
奇怪的是,相对布局总是加载为View.GONE.在XML文件中设置RelativeLayout的visibiltiy不会改变这一点.在onCreate期间调用.setVisibility手动使RelativeLayout可见,但感觉不对.在选项卡之间切换也会使RelativeLayout再次可见.
我错过了什么基本的东西?手动指定标签作为FrameLayout的XML子项是否正常?
我最终花了一些时间阅读TabHost.java并发现了正在发生的事情.
TabHost.java(天真的IMO;))假定不同的选项卡附加到不同的内容视图.
每次将内容视图添加到TabSpec时,视图的可见性都将设置为GONE.
每次将TabSpec添加到TabHost时,TabHost都会切换到选项卡0.
每次调用setCurrentTab时,当且仅当新选择的选项卡不是当前选项卡时,该选项卡的视图的可见性才设置为VISIBLE.
为同一视图添加一堆选项卡时:
所以这是因为对多个标签的内容使用相同的视图.
所以,要修复此调用:tabHost.getCurrentView().setVisibility(View.VISIBLE); ...添加所有选项卡后
| 归档时间: |
|
| 查看次数: |
1911 次 |
| 最近记录: |