【发布时间】:2015-12-22 17:38:49
【问题描述】:
我已经在操作栏中实现了一个微调器,以便在显示片段 1 时显示。当这个片段消失时,我希望它消失或禁用。
问题是,如果我在片段 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..");
}
});
}
}
下面是 bar 的两个镜头 - 第一个来自片段 1,然后来自片段 2。如果您有任何想法,请告诉我。
更新
我在微调器项 btu 上尝试了 setDisable(),但不起作用。
【问题讨论】:
标签: android android-actionbar android-spinner menuitem android-menu