起初我将rate me按钮编码为选项菜单的一部分,并且效果很好。
现在我想更加关注率我的功能。所以我在RateMe菜单main.xml中添加了一个图标。但是当我运行应用程序时,“我的速率”按钮仍然在菜单中,并且不会单独显示为按钮。
我错过了什么?
这是我的菜单main.xml:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/settings"
android:icon="@mipmap/action_search"
android:title="@string/settings"
android:showAsAction="ifRoom|withText"
/>
<item android:id="@+id/RateMe"
android:icon="@mipmap/ic_action_important"
android:title="@string/RateMe"
android:showAsAction="always"
/>
<item android:id="@+id/about"
android:icon="@mipmap/action_search"
android:title="@string/about"
android:showAsAction="ifRoom|withText" />
</menu>
它在工作室中正确显示:
这是我的主要活动代码:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(id.settings).setVisible(!drawerOpen);
menu.findItem(id.about).setVisible(!drawerOpen);
menu.findItem(id.RateMe).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
switch(item.getItemId()) {
case id.settings:
i = new Intent(this, Settings.class);
startActivity(i);
return true;
case id.about:
i = new Intent(this, About.class);
startActivity(i);
return true;
case id.RateMe:
i = new Intent(this, RateMe.class);
startActivity(i);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
这是我的主要布局文件:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
和rate me文件(空):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_rate_me"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.bernard_zelmans.checksecurity.Activities.RateMe">
</RelativeLayout>
答案 0 :(得分:1)
在xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
并将所有android:showAsAction=
替换为app:showAsAction=
喜欢:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/settings"
android:icon="@mipmap/action_search"
android:title="@string/settings"
app:showAsAction="ifRoom|withText"
/>
<item android:id="@+id/RateMe"
android:icon="@mipmap/ic_action_important"
android:title="@string/RateMe"
app:showAsAction="always"
/>
<item android:id="@+id/about"
android:icon="@mipmap/action_search"
android:title="@string/about"
app:showAsAction="ifRoom|withText" />
</menu>
希望这有帮助。
答案 1 :(得分:0)
我不确定这是否会对你有所帮助。尝试将app:showAsAction="always|collapseActionView"
添加到您的商品中。
<item android:id="@+id/RateMe"
android:icon="@mipmap/ic_action_important"
android:title="@string/RateMe"
app:showAsAction="always|collapseActionView" />