是否可以使用标签完全填充操作栏? 目前我的标签在普通手机上延伸,但是当我去平板电脑时,它非常小。
我已经发现了这个:
private void setTabsMaxWidth() {
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
final ActionBar actionBar = getActionBar();
final View tabView = actionBar.getTabAt(0).getCustomView();
final View tabContainerView = (View) tabView.getParent();
final int tabPadding = tabContainerView.getPaddingLeft() + tabContainerView.getPaddingRight();
final int tabs = actionBar.getTabCount();
for(int i=0 ; i < tabs ; i++) {
View tab = actionBar.getTabAt(i).getCustomView();
TextView text1 = (TextView) tab.findViewById(R.id.tab_title);
text1.setMaxWidth(screenWidth/tabs-tabPadding-1);
}
}
并与标签上的自定义视图结合使用:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:id="@+id/tab_title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="TEST"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
</LinearLayout>
但仍然无法正常工作
有什么想法吗?
由于
答案 0 :(得分:1)
首先,请允许我告诉您,这种用于实现标签的技术(作为ActionBar的导航模式)已被弃用。您应该使用寻呼机适配器,它将与ToolBar很好地配合使用。有SlidingTabLayouts的官方Android示例,向您展示如何实现这一点,see this dev byte for some more info.
其次,如果你沿着SlidingTabsLayout路线走下去,在createDefaultTabView()方法中,我添加了这个以确保我的两个标签平均填充屏幕宽度:
//Set tabs to take up entire screen width
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB_MR2) {
display.getSize(size);
}
else
{
size.set(display.getWidth(), display.getHeight());
}
textView.setWidth(size.x / 2);
快速查看代码会让我觉得你应该设置文本视图的宽度,而不是maxWidth。但我认为你的计算不太清晰,所以我不确定它是否也是错的。