ViewPager.getChildAt(int position).findViewById(int id)
で正しいビューを返しませんSimpleOnPageChangeListener.onPageSelected()
。だから、もしかしたら「持ち方が間違っている」と思ったのです。
私の活動では、ビューで何かをしようとしています(EditTextsのテキストを削除/変更します)
pager = (ViewPager) findViewById(R.id.pager);
pager.setOnPageChangeListener(new SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
EditText edit = (EditText) pager
.getChildAt(position)
.findViewById(R.id.textView1);
}
});
「古い」ビューを取得することがあります (1 ページまたは 2 ページ前から)。何も得られないこともあります。これが機能しないはずなのか、それとも実際にバグなのかはわかりません。誰にもアイデアはありますか?または、ビューが ViewPager に表示されているときにビューを変更する回避策はありますか? (または、これは単なる悪い習慣ですか?)
注:getFocusedChild()
は常に元のビューを返します。