我正在尝试设置我的应用的自定义视图,而我制作的布局并没有填满整个操作栏。 我尝试了很多样式设置,但没有一个适合我。
这是我的活动代码
View view = getLayoutInflater().inflate(R.layout.actionbar_customized_home, null);
getSupportActionBar().setDisplayShowCustomEnabled(true);
getSupportActionBar().setCustomView(view);
这里的布局设置为视图
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/actionbar_color"
>
![enter image description here][1]
<ImageView
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_centerInParent="true"
android:scaleType="fitCenter"
android:src="@drawable/logo"/>
</RelativeLayout>
即使是导航工具等菜单项的背景,我如何将自定义视图作为背景颜色?
我非常感谢帮助
答案 0 :(得分:20)
您需要在onCreate()
getSupportActionBar().setCustomView(new CustomView(this));
getSupportActionBar().setDisplayShowCustomEnabled(true);
答案 1 :(得分:8)
将主容器设置为:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal"
android:background="@color/actionbar_color"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="25dp"
android:layout_centerInParent="true"
android:scaleType="fitCenter"
android:src="@drawable/logo"/>
</RelativeLayout>
重要的部分是应该解决问题的android:layout_gravity="fill_horizontal
。
修改强>
如果不起作用,请尝试这样做:
View view = getLayoutInflater().inflate(R.layout.actionbar_customized_home, null);
LayoutParams layout = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
getSupportActionBar().setCustomView(view, layout);
答案 2 :(得分:0)
自定义视图仅占用导航/向上按钮和溢出菜单之间的区域。要更改背景和其他颜色,请参阅 - https://developer.android.com/training/basics/actionbar/styling.html
答案 3 :(得分:0)
ActionBar.LayoutParams layout = new ActionBar.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewCustom = inflator.inflate(R.layout.custom_searchview_actionbar, null);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setCustomView(viewCustom, layout);
actionBar.setDisplayShowCustomEnabled(true);
Log.i("SEARCH", "ACTIONBAR IS NOT NULL");
} else
Log.i("SEARCH", "ACTIONBAR IS NULL :((");