Android - не вызывается обратный вызов TabLayout Listener - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь использовать создание макета вкладки, как Google Play.Но я не смог поймать событие клика.Мой код ниже:

tabLayout.setupWithViewPager(viewPager);
tabLayout.post(new Runnable() {
        @Override
        public void run() {
            tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager) {
                @Override
                public void onTabSelected(TabLayout.Tab tab) {
                    Log.i("tag", " onTabSelected: " + tab.getPosition());
                }
                .....
            });
        }
    });

onTabSelected никогда не вызывается.

РЕДАКТИРОВАТЬ

Ниже кода работает только смахивание.

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
     ...
}

Но я хочу, чтобы элемент щелкнул по событию .

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Иногда я полагаю, что проблема может заключаться в том, что ViewPager расположен над TabLayout.Вы хотите разместить его ниже так:

щелчок по вкладке не работает вообще

0 голосов
/ 01 октября 2018

Вам не понадобится Thread.

Вместо этого попробуйте это:

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
           Log.i("tag", " onTabSelected: " + tab.getPosition()); // return the position of the selected Tab

           Toast.makeText(mainActivity.this, "Clicked", Toast.LENGTH_SHORT).show() // this should show the clicked when selecting a tab
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

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