我正在创建一个具有操作栏的android应用程序,操作栏包含两侧的菜单项。所以,我需要在左侧添加一个菜单项,在操作栏的右侧添加一个菜单项。
为此,我创建了一个自定义布局并将其设置为操作栏。如下图所示
但我只想在左侧和右侧的位置放置菜单项,另一个屏幕截图显示带有菜单项的操作栏
在此操作栏中包含菜单项。所以,我只想把加号按钮菜单项放在左侧,与第一个屏幕截图相同,但我不想使用自定义布局,
此外,我需要设置操作栏标题的字体样式并将其放在中心位置。
请帮帮我。我花了很多时间在这上面。
谢谢
答案 0 :(得分:4)
您可以直接向工具栏添加可绘制的导航,请尝试以下代码:
yourToolbar.setNavigationIcon("Resource id")
yourToolbar.setNavigationOnClickListener(new ClickListener(){})
答案 1 :(得分:1)
您必须为此创建自定义视图。您无法在用例中使用选项菜单通胀。
将活动的样式设置为Theme.AppCompat,并且不要在活动或应用程序样式中使用NoActionBar。
创建custom_menu布局。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:src="@drawable/add"
android:background="?attr/actionBarItemBackground"
android:layout_width="?attr/actionBarSize"
android:layout_height="?attr/actionBarSize"
android:scaleType="centerInside"
android:id="@+id/action_add"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"/>
<TextView android:text="NewsFeed"
android:background="?attr/actionBarItemBackground"
android:layout_height="?attr/actionBarSize"
android:layout_width="wrap_content"
android:scaleType="centerInside"
android:id="@+id/text_appname"
android:textSize="30sp"
android:textStyle="bold"
android:layout_marginLeft="5dp"
android:textColor="#FFF"
android:paddingTop="5dp"
android:layout_toRightOf="@+id/action_add"
android:layout_alignParentTop="true"/>
<ImageButton android:src="@drawable/search"
android:background="?attr/actionBarItemBackground"
android:layout_width="?attr/actionBarSize"
android:layout_height="?attr/actionBarSize"
android:scaleType="centerInside"
android:id="@+id/action_search"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"/>
</RelativeLayout>
在您的活动onCreate中添加以下代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mainfeed);
ActionBar mActionBar = getSupportActionBar();
mActionBar.setDisplayShowHomeEnabled(false);
mActionBar.setDisplayShowTitleEnabled(false);
LayoutInflater li = LayoutInflater.from(this);
View customView = li.inflate(R.layout.custom_menu, null);
mActionBar.setCustomView(customView);
mActionBar.setDisplayShowCustomEnabled(true);
ImageButton addContent = (ImageButton) customView.findViewById(R.id.action_add);
addContent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});
ImageButton search = (ImageButton) customView.findViewById(R.id.action_search);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});
}