2
아래에 표시된 코드를 사용하여 옵션 메뉴를 설정하는 간단한 활동이 있습니다. 내가 겪고있는 문제는 확장 및 searchview 축소 후 app:showAsAction="ifRoom"
함께 메뉴 항목을 경우에도 도구 모음에 여유가 나타나지 않습니다. 반면에 app:showAsAction="never"
인 메뉴 항목이 나타납니다.다른 옵션 메뉴 항목은 확장 된 searchview가 축소 된 후에 표시되지 않습니다.
는
public class SimpleActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action",
Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.menu_simple_activity, menu);
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
final MenuItem filterMenuItem = menu.findItem(R.id.action_filter);
final MenuItem sortMenuItem = menu.findItem(R.id.action_sort);
final MenuItem printAllMenuItem =
menu.findItem(R.id.action_print_all);
searchMenuItem.setOnActionExpandListener(new
MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
filterMenuItem.setVisible(false);
sortMenuItem.setVisible(false);
printAllMenuItem.setVisible(false);
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
filterMenuItem.setVisible(true);
sortMenuItem.setVisible(true);
printAllMenuItem.setVisible(true);
return true;
}
});
return true;
}
}
내가 그것을 어떻게 menu_simple_activity.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/action_search"
android:icon="@drawable/ic_search_white_24dp"
android:title="@string/action_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always|collapseActionView" />
<item
android:id="@+id/action_filter"
android:icon="@drawable/ic_filter_list_white_24dp"
android:title="@string/action_filter"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_sort"
android:icon="@drawable/ic_sort_white_24dp"
android:title="@string/action_sort"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_print_all"
android:icon="@drawable/ic_print_white_24dp"
android:title="@string/action_print_all"
app:showAsAction="never" />
</menu>
SimpleActivity.java 수정합니까?
[invalidateOptionsMenu()] (https://developer.android.com/reference/android/app/Activity.html#invalidateOptionsMenu())를 호출 해 보았습니까? – LordRaydenMK
다른 항목의 표시를 활성화 한 후에 invalidateOptionsMenu()를 호출하면 작동합니다. 감사합니다. –
답변을 작성하여 허용으로 표시 할 수 있습니다. – LordRaydenMK