0

分割された ActionBar、ViewPager、および FragmentList のホストである SherlockFragmentActivity があります。actionBar の下部はクリック可能で、クリックすると、別のアクティビティを開始するインテントが送信されます。

これはすべて私の 4.1 デバイスでは正常に動作しますが、2.2 デバイスでは、リストがスクロールされるか、ビューがページングされるまで、クリックは登録されません。

ポイントを強調するために - 機能は 4.1 デバイスで完全に問題ありません。

クリックをログに記録しましたが、2.2 デバイスでは、スクロールまたはページングが発生するまでまったく登録されません。ユーザーがスクロールまたはページングを行うと、ユーザーが行ったすべてのクリックが保存されているように見え、デバイスはボタンがクリックされた回数だけ onClick アクションを実行しようとします。

onClickListener は、次のように RelativeLayout で設定されます。

relativeLayout.addView(inflatedView);

RelativeLayout relativeLayout2 = (RelativeLayout) inflatedView.findViewById(R.id.layout);
relativeLayout2.setOnClickListener(this);

および onClick():

public void onClick(View v) {
    Log.i(TAG, "onCLick Registered");
    Intent startMusicPlayer = new Intent(MainActivity.this, MusicPlayerActivity.class);
    Log.i(TAG, "Intent Created. Should have moved on by now.");
    startActivity(startMusicPlayer);
}

もう 1 つの興味深い点は、onClickListener を使用した RelativeLayout には、動作 android:background="@android:drawable/list_selector_background"していないように見える list_selector があることです。

4

1 に答える 1

1

これは、バージョン 4.0 以降の ABS の現在の問題です。

すでに提出されたいくつかの問題があります。未解決の問題を検索すると、それらが見つかります。考えられる解決策の 1 つを次に示します: https://github.com/JakeWharton/ActionBarSherlock/issues/442

于 2012-09-30T10:47:47.803 に答える