默认情况下,Android Button
的右上角有一个... Button
(又名菜单溢出ActionBar
)。
这个Button
打开选项菜单溢出,用户可以从中选择不同的项目。
是否可以直接对... Button
上的印刷机作出反应?
我想要实现的是没有菜单弹出。相反,我想要的行为是打开一个新的Activity
。就像设置活动一样。
答案 0 :(得分:0)
我认为这就是你的想法:
<强> EDIT2:强>
还有一件事需要改变:
res-> menu-> your_menu_xml
<item
android:id="@+id/action_edit_pass"
android:orderInCategory="100"
<强>机器人:showAsAction = “总是”强>
android:title="@string/action_edit_pass"/>
这会将“...”变为你在其中写下的值。
答案 1 :(得分:0)
这样做的一种方法是使用Toolbar
代替默认ActionBar
。这样,您就可以在Button
的右侧简单地添加溢出ImageButton
或Toolbar
(...),您只需使用{{1 }}
一个例子:
首先,声明你的onClickListener()
xml。
<强> toolbar.xml 强>
Toolbar
稍后,通过在<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="ANY_HEX_COLOR"
android:elevation="4dp">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_gravity="end"
style="@android:style/Widget.Holo.Button.Borderless"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:id="@+id/bt_overflow"
android:src="@android:drawable/ic_menu_more" />
</android.support.v7.widget.Toolbar>
上设置ActionBar
主题来隐藏默认NoActionBar
。类似的东西:
<强> style.xml 强>
style.xml
现在,在<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- ... -->
</style>
</resources>
xml文件中添加Toolbar
。
<强> my_activity.xml 强>
Activity
然后,在<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/rl_root"
tools:context="com.testapp.ToolBarActivity">
<include
android:id="@+id/tool_bar"
layout="@layout/toolbar"
/>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tool_bar"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.testapp.ToolBarActivity">
<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
</RelativeLayout>
上,让它继承自Activity
。并设置你的听众。
<强> MyActivity.java 强>
ActionBarActivity
P.S。:不要忘记在gradle文件中添加支持库。
public class ToolBarActivity extends ActionBarActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tool_bar);
toolbar = (Toolbar) findViewById(R.id.tool_bar);
ImageButton ib = (ImageButton) findViewById(R.id.bt_overflow);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity();
}
});
toolbar.setTitle("Test");
}
private void startActivity() {
Intent it = new Intent(this,OtherActivity.class);
startActivity(it);
}
}
如果您希望dependencies {
compile 'com.android.support:appcompat-v7:22.2.0'
}
的行为与普通Toolbar
相同,只需将此行添加到ActionBar
:
onCreate()