Android SearchПросмотреть проблему анимации "Домой" иконка - PullRequest
0 голосов
/ 22 ноября 2018

Всем хорошего дня!У меня проблема с анимацией для ActionBar и представления Search ... У меня есть стандартная анимация в ActionBar - от значка «гамбургер» до «стрелки», и он работает правильно для вызова некоторого меню, но также у меня есть SearchView, который расширяет весь ActionBarи рушится, но я не могу добавить анимацию для значка кнопки «Вверх» для него.Мне нужно сделать ту же анимацию (гамбургер - стрелка), чтобы развернуть и свернуть SearchView.Большое спасибо!Это моя основная деятельность ..

public class MainActivity extends AppCompatActivity {

    private AnimatedVectorDrawable mMenuDrawable;
    private AnimatedVectorDrawable mBackDrawable;
    AnimationDrawable rocketAnimation;
    private boolean mMenuFlag;
    private boolean mMenuFlagSearch;

    private AnimatedVectorDrawable mAddDrawable;
    private AnimatedVectorDrawable mCheckDrawable;
    private boolean mFabFlag;

    private MenuItem mSearch;
    SearchView mSearchView;
    Toolbar toolbar;


    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toolbar = findViewById(R.id.toolbar);
        toolbar.setTitle("RSS FEED");
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP|ActionBar.DISPLAY_SHOW_TITLE);
        getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu_vector);
        mMenuDrawable = (AnimatedVectorDrawable) getDrawable(R.drawable.ic_menu_animatable);
        mBackDrawable = (AnimatedVectorDrawable) getDrawable(R.drawable.ic_back_animatable);

    }



    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case android.R.id.home:
                menuClick();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }

    }


    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private void menuClick() {
        if (mMenuFlag) {
            getSupportActionBar().setHomeAsUpIndicator(mBackDrawable);
            mBackDrawable.start();
        } else {
            getSupportActionBar().setHomeAsUpIndicator(mMenuDrawable);
            mMenuDrawable.start();
        }
        mMenuFlag = !mMenuFlag;
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.search_menu_toolbar, menu);

        mSearch = menu.findItem(R.id.action_search);

        mSearchView = (SearchView) mSearch.getActionView();
        mSearchView.setQueryHint("Search");


        mSearch.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
            @Override
            public boolean onMenuItemActionExpand(MenuItem menuItem) {
                Toast.makeText(getApplicationContext(),"EXPAND",Toast.LENGTH_SHORT).show();
                return true;
            }

            @Override
            public boolean onMenuItemActionCollapse(MenuItem menuItem) {
                Toast.makeText(getApplicationContext(),"COLLAPSE",Toast.LENGTH_SHORT).show();
                return true;
            }
        });

        return super.onCreateOptionsMenu(menu);
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...