9

私はこの問題を解決しようと数日間試みましたが、理解できません。問題は、単純なレイアウト、ScrollView -> LinearLayout -> およびレイアウト内 (スクロール コンテンツ内) の多くのボタンを使用した単純なアクティビティです。すべて問題なく動作しますが、1 つトリッキーなことがあります。ボタンをクリックすると、たとえばスクロール コンテンツの上部にあるとしましょう。すぐにコンテンツの下部までスクロールして別のボタンをクリックすると、もう一度クリックしてすべて正常に戻るまで何も起こりません。これはいつでも再現でき、コードに依存しません (20 以上のシナリオを試しました)。私はまだAndroidでの経験があまりありませんが、スクロールリスナーがonClickリスナーなどを停止しているようです。これについての助けは大歓迎です。前もって感謝します。

PD。指で手動でスクロールする代わりに、プログラムで を実行するscrollTo()と、すべてが正常に機能し、最初のタッチでクリックが応答します。それは単に私を圧倒しています。

4

4 に答える 4

3

私も同じ問題を抱えてる。それがフェードスクロールバーの問題であることに同意しません。フェードを無効にすると、同じことが起こります。

themes.xml でいくつかのアプローチを試しました:

<item name="android:scrollbarDefaultDelayBeforeFade">100</item>
<item name="android:scrollbarFadeDuration">100</item>
<item name="android:fadeScrollbars">true</item>

しかし、何も役に立ちませんでした。scrollViewsのシステム的なものだと思われます。これは、何が起こっているかを確認するのに役立つ場合があります。

setOnScrollListener(new OnScrollListener(){
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
      // TODO Auto-generated method stub
    }
    public void onScrollStateChanged(AbsListView view, int scrollState) {
      // TODO Auto-generated method stub
      if(scrollState == 0) Log.i("a", "scrolling stopped...");
    }
  });
}

しかし、それは(残念ながら)問題を解決するのには役立ちませんが、むしろそれを説明しています.

注: これは、ScrollView を使用する場合にのみ発生します。ListView にはこの問題はありません。

誰でも別のアイデアがありますか?

于 2010-12-19T10:08:22.680 に答える
2

すべてが正常に動作しています。

スクロールを開始するとScrollView、画面へのタッチを少し停止するまで、はタッチイベントを要求します。Android 2.2では、右側のスクロールバーがフェードアウトするため、スクロールが完了したと見なされるタイミングがわかります。

于 2010-10-31T17:24:41.257 に答える
1

こんな状況になりました。ExpandableListView がありますが、正常に動作します。携帯電話を水平に回転させて元に戻すと、ExpandableListView の 1 つのグループの一部の項目がクリック イベントに応答しません。リスト ビューをスクロールするか、これらのアイテムのグループ アイテムをクリックしない限り、イベントは以前にクリックしたアイテムにディスパッチされ、クリック リスナー コードが正しく実行されます。

これはAndroid 2.3と4.0の両方で発生しました...

于 2012-02-13T10:19:47.857 に答える
0

onScrollChanged をオーバーライドし、境界に達したときに OnTouchEvent を介して ScrollView に MotionEvent を送信し、ユーザーのタッチをシミュレートすることで、これを修正できました。

これは私が想像できる最もハックで汚いプログラミングですが、私のアプリケーションでは問題なく動作します。このアプリは 2.2 を実行している携帯電話専用であり、このバグは何らかの方法で修正する必要がありました。

誰かがより良い解決策を持っている場合は、私に知らせてください。

編集: この問題は 2.2 でのみ発生し、2.3 で修正され、2.1 では問題になりませんでした。

于 2011-05-17T10:15:34.317 に答える