自定义ActionBar导致重叠默认ActionBar

时间:2015-07-08 12:36:48

标签: android android-layout android-actionbar

您好我想使用此方法将自定义ActionBar添加到Android应用程序中:

   LinearLayout ll_q = (LinearLayout) findViewById(R.id.qtitlebar);
   getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_USE_LOGO);
   getSupportActionBar().setCustomView(R.layout.question_titlebar);

结果是:

如何摆脱此ActionBar中的灰色区域和菜单按钮?

3 个答案:

答案 0 :(得分:1)

解决方案是添加:

actionBar.setDisplayShowTitleEnabled(false);

代码应该类似于:

actionBar = getSupportActionBar(); 
actionBar.setDisplayShowHomeEnabled(false); 
actionBar.setDisplayShowCustomEnabled(true); 
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(R.layout.actionbar);//set the custom view

在样式文件中添加以下代码:

<item name="toolbarStyle">@style/Widget.Toolbar</item>


<style name="Widget.Toolbar" parent="@style/Widget.AppCompat.Toolbar">
<item name="contentInsetStart">0dp</item>
</style>

答案 1 :(得分:1)

你也应该为Custom ActionBar设置布局,即

夸大自定义操作栏视图

LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v =inflator.inflate(R.layout.actionbar_discard_done, null);

然后使用布局参数

设置自定义视图
ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT);
 getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_USE_LOGO);
 getSupportActionBar().setCustomView(v,params);

答案 2 :(得分:0)

如果您使用的是Android Studio,请执行以下操作:

  1. 使用Activity而不是ActionBarActivity扩展您的课程。
  2. 打开应用程序的清单文件并更改

        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"