package com.oasisfeng.android.databinding.adapters; import android.view.Menu; import android.view.MenuInflater; import android.widget.ActionMenuView; import android.widget.Toolbar; import androidx.annotation.MenuRes; import androidx.databinding.BindingAdapter; import static android.os.Build.VERSION.SDK_INT; import static android.os.Build.VERSION_CODES.LOLLIPOP; /** * Binding adapter for menu in {@link Toolbar} and {@link ActionMenuView} * * Created by Oasis on 2016/11/30. */ @SuppressWarnings("unused") public class MenuBindingAdapter { @BindingAdapter("menu") public static void inflateMenu(final Toolbar toolbar, final @MenuRes int old_menu, final @MenuRes int new_menu) { if (SDK_INT < LOLLIPOP) return; if (new_menu == old_menu) return; final Menu menu = toolbar.getMenu(); menu.clear(); toolbar.inflateMenu(new_menu); } @BindingAdapter("menu") public static void inflateMenu(final ActionMenuView amv, final @MenuRes int old_menu, final @MenuRes int new_menu) { if (SDK_INT < LOLLIPOP) return; if (new_menu == old_menu) return; final Menu menu = amv.getMenu(); menu.clear(); new MenuInflater(amv.getContext()).inflate(new_menu, menu); } }