onClickListener冲突

时间:2017-07-30 05:44:22

标签: android android-viewpager onclicklistener

enter image description here我在同一个视图中使用了两个库NavigationTabBar&& .. SpaceNavigationView并且在尝试单独运行它们时它们都正常工作..但是当同时添加它们时,NavigationTabBar工作正常,而SpaceNavigationView onClickListener停止工作。

  • MainActivity:

    spaceNavigationView = (SpaceNavigationView) findViewById(R.id.space);
    navigationTabBar = (NavigationTabBar) findViewById(R.id.ntb_horizontal);
    final ViewPager viewPager = (ViewPager)findViewById(R.id.vp_horizontal_ntb);
    viewPager.setAdapter(new PagerAdapter() {
        @Override
        public int getCount() {
            return 4;
        }
    
        @Override
        public boolean isViewFromObject(final View view, final Object object) {
            return view.equals(object);
        }
    
        @Override
        public void destroyItem(final View container, final int position, final Object object) {
            ((ViewPager) container).removeView((View) object);
        }
    
        @Override
        public Object instantiateItem(final ViewGroup container, final int position) {
            if (position == 0) {
                final View view = LayoutInflater.from(
                        getBaseContext()).inflate(R.layout.final_circle_menu, null, false);
                container.addView(view);
                return view;
            } else {
                TextView textView = new TextView(MainActivity.this);
                textView.setText("" + position);
                container.addView(textView);
                return textView;
            }
        }
    });
    
    final String[] colors = getResources().getStringArray(R.array.default_preview);
    
    final ArrayList<NavigationTabBar.Model> models = new ArrayList<>();
    models.add(
            new NavigationTabBar.Model.Builder(
                    getResources().getDrawable(R.drawable.ic_about),
                    Color.parseColor(colors[0]))
                    .selectedIcon(getResources().getDrawable(R.drawable.ic_home))
                    .build()
    );
    models.add(
            new NavigationTabBar.Model.Builder(
                    getResources().getDrawable(R.drawable.ic_news_events),
                    Color.parseColor(colors[1]))                        .selectedIcon(getResources().getDrawable(R.drawable.ic_eighth))
                    .build()
    );
    models.add(
            new NavigationTabBar.Model.Builder(
                    getResources().getDrawable(R.drawable.ic_home),
                    Color.parseColor(colors[2]))
                    .selectedIcon(getResources().getDrawable(R.drawable.ic_news_events))
                    .build()
    );
    models.add(
            new NavigationTabBar.Model.Builder(
                    getResources().getDrawable(R.drawable.ic_servises),
                    Color.parseColor(colors[4]))
                    .selectedIcon(getResources().getDrawable(R.drawable.ic_news_events))
                    .build()
    );
    
    navigationTabBar.setModels(models);
    navigationTabBar.setViewPager(viewPager, 0);
    navigationTabBar.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(final int position, final float positionOffset, final int positionOffsetPixels) {
    
        }
    
        @Override
        public void onPageSelected(final int position) {
        }
    
        @Override
        public void onPageScrollStateChanged(final int state) {
        }
    });
    
    spaceNavigationView.initWithSaveInstanceState(savedInstanceState);
    spaceNavigationView.addSpaceItem(new SpaceItem(R.drawable.ic_bottom_call));
    spaceNavigationView.addSpaceItem(new SpaceItem(R.drawable.ic_bottom_happiness));
    spaceNavigationView.addSpaceItem(new SpaceItem(R.drawable.ic_bottom_call));
    spaceNavigationView.addSpaceItem(new SpaceItem(R.drawable.ic_bottom_happiness));
    spaceNavigationView.setCentreButtonIconColorFilterEnabled(false);
    spaceNavigationView.setSpaceOnClickListener(new SpaceOnClickListener() {
        @Override
        public void onCentreButtonClick() {
            Toast.makeText(MainActivity.this, "onCentreButtonClick", Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onItemClick(int itemIndex) {
            Toast.makeText(MainActivity.this, "onItemClick " + itemIndex, Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onItemReselected(int itemIndex) {
            Toast.makeText(MainActivity.this, "onItemReselected " + itemIndex, Toast.LENGTH_SHORT).show();
        }
    });
    

我必须做些什么来避免这种冲突? 感谢。

0 个答案:

没有答案