我在同一个视图中使用了两个库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();
}
});
我必须做些什么来避免这种冲突? 感谢。