首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android ViewPager 添加頁面切換監聽與子 View 點擊事件

     編輯:程式設計綜合問答

頁面切換監聽

使用 ViewPager.OnPageChangeListener:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
    @Override public void onPageSelected(int position) {
        // 頁面已穩定顯示
        Log.d("ViewPager", "Current page: " + position);
    }
    @Override public void onPageScrollStateChanged(int state) {}
});

子 View 點擊事件

**不要**在 ViewPager 上設置 OnClickListener。應在 **PagerAdapter** 的 instantiateItem 中為每個子 View 單獨設置:

@Override
public Object instantiateItem(ViewGroup container, int position) {
    View page = inflater.inflate(R.layout.page_layout, container, false);
    ImageView img = page.findViewById(R.id.page_image);
    img.setOnClickListener(v -> {
        // 處理第 position 頁圖片點擊
        Toast.makeText(context, "Clicked page " + position, Toast.LENGTH_SHORT).show();
    });
    container.addView(page);
    return page;
}

常見誤區

  • viewPager.setOnClickListener 不會觸發,因 ViewPager 攔截觸摸事件用於滑動。
  • 若需整頁點擊,可在頁面根布局設置 android:clickable="true" 並綁定 listener。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved