0
我已經在操作欄中實現了一個微調器,以便在顯示fragment-1時顯示。當這個片段消失時,我希望它消失或停用。如何禁用離開碎片時在ActionBar中的微調器菜單項?
問題是,如果我在碎片1的頂部啓動另一個碎片2(如附圖所示的屏幕所示),那麼微調器仍然以條形顯示。有類似的帖子(不完全像項目一樣微調)。我要麼試過它們,不成功,要麼我不明白如何將它們應用於我的案例。如果您看到任何類似的帖子,請標記爲重複。
這是我menu.xml文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menuReports"
android:title="@string/reports_menu_title"
app:actionLayout="@layout/layout_reports_menu"
android:name="android:spinnerItemStyle"
app:showAsAction="always">
</item>
</menu>
片段:
public class MyFragment extends android.support.v4.app.Fragment {
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_reports, menu);
mSpinnerItem = menu.findItem(R.id.menuReports);
SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(((AppCompatActivity) getActivity()).getSupportActionBar()
.getThemedContext(), R.array.reports_types, android.R.layout.simple_spinner_dropdown_item);
final Spinner spinner = (Spinner) MenuItemCompat.getActionView(mSpinnerItem);
spinner.setAdapter(spinnerAdapter);
spinner.setMinimumWidth((int) Converter.convertDpToPixels(getActivity(),
getResources().getDimension(R.dimen.report_spinner_selected_item_width)));
spinner.setPadding(0, 0, (int) Converter.convertDpToPixels(getActivity(), 30), 0);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
Log.d(TAG, "No Item selected..");
}
});
}
}
下面是杆的兩個鏡頭 - 從片段-1第一個,然後從片段2。讓我知道你是否有任何想法。
UPDATE
我試過setDisable()上的微調項英熱單位,沒有工作。
謝謝!是的,我也試過這個。但我沒有得到在哪裏設置isVisible錯誤。片段1的onStop()不會被調用,因爲我替換()了片段。 – cgr
正如我所提到的,我想隱藏微調器,當這個片段變得不可見時,所以它不會顯示在其他片段中。 – cgr
您可以在活動級別的replace()之後調用它,或者覆蓋這兩個片段中的onPrepareOptionsMenu()並將其設置在那裏。 –