0

Я использую this sample code and library. Эта библиотека отлично работает, прокручивая экран, но я хочу, когда на слайде отображается индикатор слайда пейджера.Просмотр пейджера в андроиде с индикатором Pager Нажмите кнопку «Событие»?

Примечание:

Этот View пейджера индикатор Клик работает в андроид телефон домашней страницы.

+0

Существует уже упоминание: если вы используете OnPageChangeListener с вашим плейджером представления, вы должны установить его в индикаторе, а не на пейджер напрямую: titleIndicator.setOnPageChangeListener (mPageChangeListener); –

+0

может у меня код для примера PLS – user3793597

+0

Нет необходимости в стороннем коде и каких-либо ручных хаках. TabLayout - идеальный виджет для создания индикатора страницы. Вы получаете клики по указателю страницы из коробки. Взгляните на этот ответ: https://stackoverflow.com/a/44231881/1850606 – xleon

ответ

0

вы должны установить его на просмотр вашего ViewPager, как это,

public class ViewPagerAdapter extends PagerAdapter { 

Context context; 
String[] title; 
String[] image; 
LayoutInflater inflater; 
ArrayList<Categories> arrayList; 

Activity activity; 

public ViewPagerAdapter(Context context, ArrayList<Categories> arrayList) { 
    this.context = context; 
    this.arrayList = arrayList; 
} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return arrayList.size(); 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    // TODO Auto-generated method stub 
    return view == ((RelativeLayout) object); 
} 

@Override 
public Object instantiateItem(ViewGroup container, final int position) { 
    // TODO Auto-generated method stub 

    TextView txtTitle; 
    ImageView image; 

    inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View itemView = inflater.inflate(R.layout.item, container, false); 

    itemView.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent i = new Intent(context, ListViewActivity.class); 
      Bundle b = new Bundle(); 
      final String id = arrayList.get(position).getId(); 
      b.putString("id", id); 
      i.putExtras(b); 
      context.startActivity(i); 
     } 
    }); 

    txtTitle = (TextView) itemView.findViewById(R.id.tvName); 
    image = (ImageView) itemView.findViewById(R.id.imageView1); 

    txtTitle.setText(arrayList.get(position).getTitle()); 
    ((ViewPager) container).addView(itemView); 

    Ion.with(context).load(arrayList.get(position).getImage()).withBitmap() 
      .resize(512, 512).centerCrop().intoImageView(image); 

    return itemView; 
} 

@Override 
public void destroyItem(View container, int position, Object object) { 
    ((ViewPager) container).removeView((View) object); 
} 
} 

попробовать это ... это работает для меня.

Смежные вопросы