1
我得到一個隱藏和添加菜單項在片段和導航抽屜的問題,因爲我在我的應用程序我有註銷和添加聯繫人菜單,我想設置註銷全部選項,但不需要在所有屏幕上添加聯繫人按鈕。由於我的應用程序包含四個視圖分頁器選項卡片段和導航抽屜。我通過菜單XML文件添加了我的菜單。 我希望我的註銷選項在導航抽屜中的所有片段中,但只在我的第一個選項卡片段中添加聯繫人。無法添加和刪除片段和導航抽屜的菜單選項
這裏是主要活動代碼:
override fun onCreateOptionsMenu(menu: Menu): Boolean {
val menuInflater = menuInflater.inflate(R.menu.main, menu)
val menuLogout = menu.findItem(R.id.logout)
val menuadd = menu.findItem(R.id.iadd_contact)
return super.onCreateOptionsMenu(menu)
}
override fun onOptionsItemSelected(item: android.view.MenuItem): Boolean {
when (item.itemId) {
R.id.logout -> {
postLogout(path, params) { response ->
}
}
return true
R.id.iadd_contact -> {
val intent = Intent(Intent.ACTION_INSERT)
intent.setType(ContactsContract.Contacts.CONTENT_TYPE)
startActivity(intent)
return true
}
}
return super.onOptionsItemSelected(item)
}
,當我從片段A移動到片段B什麼是與去我只想要註銷按鈕啓用和添加聯繫人禁用,然後當我再次去恢復從片段B到片段我的添加聯繫人菜單也獲得禁用,但我希望只在片段A中,並且與我在打開抽屜式導航器時發生的相同
而在片段中,我已將此代碼設置爲:
override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
super.onCreateOptionsMenu(menu, inflater)
menu!!.removeItem(R.id.iadd_contact)
}
而且oncreateview:
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
// TODO Auto-generated method stub
setHasOptionsMenu(false)
rootv = inflater!!.inflate(R.layout.edit_profile, container, false)
activity.invalidateOptionsMenu()
return rootv
}
只要我只想我的R.id.iadd_contact
在我的第一個選項卡的片段,以使在所有其他片段禁用所以由於堆棧或從另一個片段再次移動片段回到我的第一個標籤片段我的加入R.id.iadd_contact
也被刪除。
這並沒有工作:( –
從MainActivity刪除onCreateOptionsMenu並添加到片段..創建單獨的菜單文件 – Pavya
這工作正常與簡單viewpager選項卡片段。我已創建separete onCreateOptionsmenu片段。但現在問題即時獲取與導航抽屜片段文件。當我來自導航抽屜片段文件bac k到我的標籤片段,然後可見性也消失了。我如何處理導航抽屜碎片文件也是如此。 –