gpt4 book ai didi

android - 如何在android中左右设置两个自定义actionbar按钮?

转载 作者:IT老高 更新时间:2023-10-28 23:39:49 26 4
gpt4 key购买 nike

我正在使用 Sherlock 库,我也自己实现。我的问题是我在菜单中添加了两个项目,现在我想要操作栏左侧的一项和操作栏右侧的第二项。怎么做?

最佳答案

您可以创建这样的操作栏,但它比膨胀菜单复杂一点。 onCreateOptionsMenu() 方法中创建的菜单将始终向右对齐,放置在拆分操作栏中​​或隐藏在菜单键下。

如果您希望您的操作栏只包含两个菜单项 - 一个在左边缘,另一个在右边缘 - 您必须在操作栏中创建自定义 View 。

自定义 View 布局将是这样的:

<?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/ic_menu_item1"
android:background="?attr/actionBarItemBackground"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:id="@+id/item1"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"/>

<ImageButton android:src="@drawable/ic_menu_item2"
android:background="?attr/actionBarItemBackground"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:scaleType="centerInside"
android:id="@+id/item2"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"/>
</RelativeLayout>

在您要使用自定义 View 的主题中定义。主题应包含:

<style name="MyTheme" parent="@style/Theme.Sherlock">
<item name="actionBarStyle">@style/MyActionBarStyle</item>
<item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>

<style name="MyActionBarStyle" parent="@style/Widget.Sherlock.ActionBar">
<item name="displayOptions">showCustom</item>
<item name="android:displayOptions">showCustom</item>
</style>

在 Activity (或 fragment )中设置自定义 View :

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

ActionBar ab = getSherlock().getActionBar();
LayoutInflater li = LayoutInflater.from(this);
View customView = li.inflate(R.layout.my_custom_view, null);
ab.setCustomView(customView);

ImageButton ibItem1 = (ImageButton) customView.findViewById(R.id.item1);
ibItem1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});

ImageButton ibItem2 = (ImageButton) customView.findViewById(R.id.item2);
ibItem2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});
}

您必须为菜单项添加点击监听器。在这种情况下,您不能使用 onOptionsItemSelected()

关于android - 如何在android中左右设置两个自定义actionbar按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14210454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com