0

나는 this sample code and library을 사용하고 있습니다.이 라이브러리는 화면을 스 와이프하여 잘 작동하지만 해당 위치에서 작동하는보기 호출기 표시기 슬라이드를 클릭 할 때 필요합니다.View Pager 표시기로 안드로이드의 호출기를 봅니다. Click Event?

참고 :

이보기 호출기 표시 클릭이 안드로이드 전화의 홈 페이지에서 일하고있다.

+0

이미 언급 됨 : 뷰 페이지 호출기에서 OnPageChangeListener를 사용하는 경우 호출기 대신 직접 표시기에 설정해야합니다. titleIndicator.setOnPageChangeListener (mPageChangeListener); –

+0

샘플 코드 pls를 참조 할 수 있습니다 – user3793597

+0

제 3 자 코드 나 수동 해킹이 필요 없습니다. TabLayout은 페이지 지시자를 만드는 데 완벽한 위젯입니다. 상자 안의 페이지 표시기에 대한 클릭이 발생합니다. 이 답변을보십시오 : https://stackoverflow.com/a/44231881/1850606 – xleon

답변

0

당신은

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); 
} 
} 

이 ... 그것은 나를 위해 작동하려고,이처럼 viewPager의보기에 그것을 설정해야합니다.