你好我想在android中动态获取Frag of Fragment Tab的高度,但它对我没用。
mTabHost = (FragmentTabHost) findViewById(R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.container);
mTabHost.addTab(
mTabHost.newTabSpec("tab1").setIndicator("Tab 1",
getResources().getDrawable(android.R.drawable.star_on)),
FragmentTab.class, null);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)findViewById(R.id.container).getLayoutParams();
params.setMargins(0, mTabHost.getHeight(), 0, 0);
想知道FragmentTabHost的标签高度吗?
答案 0 :(得分:0)
获得高度很棘手,因为视图没有像您预期的那样立即布局。要在布置视图后立即获得高度,请添加ViewTreeObserver
OnGlobalLayoutListener
。
这是我在标签中获取内容高度的解决方案。此代码位于我的片段的onCreateView
方法中。
ViewTreeObserver.OnGlobalLayoutListener listener = new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
View rootElement = tabView.findViewById(R.id.root_element_of_tab);
Log.d("The height of this tab is " + rootElement.getHeight());
// Now that the listener has served its purpose, we can remove it
tabView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
};
tabView.getViewTreeObserver().addOnGlobalLayoutListener(listener);
如果您询问小标签标签的高度,this StackOverflow question可能会有帮助。