我正在尝试在操作栏中为不同的活动创建不同的项目集。作为一个页面上的示例,我想要一个搜索图标,但不在其他页面上。我在 menu.xml 中添加项目,然后在特定活动中膨胀整个页面,但我只想显示特定项目....怎么做?谢谢
问问题
7730 次
2 回答
4
您可以对 MenuItems 使用MenuItem.setVisible(boolean)函数。有了这些,您可以使您的特定项目可见/不可见,就像您在活动中需要它们一样。
在 onCreateOptionsMenu() 回调中,您将拥有如下内容:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
...
// hide the menu item
menu.findItem(R.id.yourItem).setVisible(false);
...
return true;
}
或者,您可以将单独的 menu.xml 用于您的不同活动。哪个会更干净。因为您将摆脱代码部分来处理您不需要的项目。
于 2013-11-10T12:26:47.823 回答
1
要在不同的活动之上添加不同的操作栏或工具栏,您可以按如下方式添加它们 sample_activity.xml
<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />
以及扩展 AppCompatActivity 的 java 文件中的以下代码,例如。sample_activity.class
public class sample_activityextends AppCompatActivity {
Toolbar toolbar = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sample_activity);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// Get a support ActionBar corresponding to this toolbar
android.support.v7.app.ActionBar ab = getSupportActionBar();
// Enable the Up button
ab.setDisplayHomeAsUpEnabled(true);
}
}
正如我们在上面的活动中编写的代码
// 获取该工具栏对应的支持ActionBar android.support.v7.app.ActionBar ab = getSupportActionBar();
// Enable the Up button
ab.setDisplayHomeAsUpEnabled(true);
这将在您的活动中添加后退或顶部按钮,但为此您还需要在 AndroidManifest.xml 中进行以下更改
<activity android:name=".sample_activity"
android:parentActivityName=".MainActivity">
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity"></meta-data>
</activity>
<activity android:name=".MainActivity"></activity>
于 2016-09-09T06:36:06.080 回答