1. ホーム
  2. android

Android ViewPager 現在のビューを取得する

2023-10-28 05:42:18

質問

ViewPagerを持っていますが、位置ではなく、現在選択されている、表示されているビューを取得したいのです。

  1. getChildAt(getCurrentItem) が間違って返される View
  2. これは常に動作するわけではありません。時にはNULLを返し、時には間違ったViewを返します。

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
    
        if (isVisibleToUser == true) { 
            mFocusedListView = ListView; 
        }
    }
    
    
  3. のPageListener。 ViewPagergetChildAt() もうまくいかず、毎回正しいViewが表示されません。

現在表示されているビューを取得するにはどうすればよいですか?

View view = MyActivity.mViewPager.getChildAt(MyActivity.mViewPager.getCurrentItem()).getRootView();
ListView listview = (ListView) view.findViewById(R.id.ListViewItems);

どのように解決するのですか?

私はそれを理解しました。私がしたことは setTag() に名前をつけて、すべての View s/ ListView を呼び出すだけで findViewWithTag(mytag) , mytag がタグである。

残念ながら、これを解決する他の方法はありません。