2

我正在为操作栏使用不同的布局,并向其添加符合我要求的不同项目。然后像这样在java类中调用它

ActionBar actionBar = getActionBar();
actionBar.setCustomView(R.layout.actionbar);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setDisplayShowHomeEnabled(false);

它对于 2 或 3 种不同的设备看起来不错,但看起来与 nexus7 平板电脑和 xhdpi 不兼容。操作栏的高度很小,它给了空白空间。我应该怎么做才能管理这个?我在用

     android:layout_width="match_parent"
     android:layout_height="48dp"

在操作栏布局中。我也使用过

           android:layout_height="wrap_content" 

但它根本不起作用。我不知道如何解决它。请帮忙。

4

2 回答 2

0
ActionBar bar = getSupportActionBar();
Display d = getWindowManager().getDefaultDisplay();
DisplayMetrics dm = new DisplayMetrics();
d.getMetrics(dm);
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)myCustomView.getLayoutParams();
final int ACTION_BAR_HEIGHT = dm.heightPixels/10; // 1/10 from screen height
lp.height = ACTION_BAR_HEIGHT;
myCustomView.setLayoutParams(lp);
bar.setCustomView(myCustomView);
于 2013-09-26T05:56:40.990 回答
0

您可以在源而不是资源中设置操作栏的高度。

所以你只需要计算操作栏的高度:

TypedValue tv = new TypedValue();
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true))
{
    actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
于 2013-09-26T05:50:09.013 回答