s を行要素としてListView
表示する aがあります。ViewPager
を使用したいのですOnItemClickListener
が、が呼び出されViewPager
ません。onItemClick
これどうやってするの?
2110 次
4 に答える
0
興味深いセットアップ。問題は、ViewPagerが実際のリスト要素から「盗まれた」フォーカスを持っていることです。
最初にリストアイテムビューを返すとき(たとえば、ListAdapterで)、setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS)
そのビューを呼び出します。
または、これをリスト要素のXMLレイアウトに直接追加します。android:descendantFocusability="blocksDescendants"
この問題の説明と解決策はここにあります。
于 2013-03-15T14:40:19.383 に答える
-1
ここでの私の回答のようなカスタム ListView 実装を使用できます: https://stackoverflow.com/a/40051801/425238
于 2016-10-14T20:53:15.363 に答える
-2
あなたのセットアップはかなり混乱しているように聞こえますが、あなたが望むように聞こえるのは、ViewPager ページの変更を監視する方法です。その場合、次を使用します
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//actions
}
@Override
public void onPageSelected(int position) {
//actions
}
@Override
public void onPageScrollStateChanged(int state) {
//actions
}
});
onPageSelected のように聞こえますが、これを使用して現在選択されているページ インデックスを取得できます。
ただし、リスト ビューのアイテムが選択されたときに取得したい場合は、次のようなものが必要です。
ListView listview;
listview.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//on item selected here
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
//never had to implement personally
}
});
于 2013-03-15T14:23:56.943 に答える