0

この3つを順番に示す活動があります。

  1. ViewFlipper (ユーザーは左右に投げることができます)
  2. 編集テキスト
  3. ListView (リスト ビューには n 行を含めることができます。100 行に制限します。各行には、非同期にダウンロードされる画像があります)

ユーザーが垂直にスクロールできるようにしたいので、3つのアイテムを単一の相対レイアウトに配置し、それをscrollViewに入れます

<RelativeLayout>
    <ScrollView>
        <RelativeLayout>

        </RelativeLayout>  
    </ScrollView>
</RelativeLayout>

このアプローチの問題

ListView とスクロール ビューを一緒に使用すると、ユーザー エクスペリエンスが低下します。リストがすべての画面をカバーする場合、ユーザーは完全なビュー自体をスクロールする際に問題が発生します。

私が考えることができる解決策

  1. ListView の Scroll を無効にして、すべてのアイテムを表示させます (これで十分ですか)
  2. ユーザー addHeaderView (使い方がわからない)

2番目のアプローチ(私が行って問題に遭遇しました)。

ListView を使用する代わりに、LinearLayout (listrow の置換) を動的に追加します。

このアプローチの問題

そのようなシナリオのための洗練されたアダプターがないため、多くの醜いコーディング。各 LinearLayout にデータを入力する必要があり、すべての LinearLayout に対して非同期の画像読み込みがあるため、さらに問題が発生します。

より良いアプローチは何でしょうか。代替品はありますか?

4

1 に答える 1

0

ScrollViewaと aを一緒に使用しないでください。の作成者であるRomain GuyListViewが述べているように、これは悪いことです。あなたのアプローチの問題はパフォーマンスです. n newを作成する必要がありますが、 は既存のものを再利用するだけです.ListViewLinearLayoutViewsListView

私が考えることができる解決策(スクロールせずにレイアウトコンポーネントを画面に合わせることができない場合)、ListViewでスクロールを無効にし、「スクロールアップ」ボタンと「スクロールダウン」ボタンを追加してonClickListenerOnLongClickListenerユーザーがスクロール速度を制御できるようにします。これは最善のアプローチではないかもしれませんが。コンポーネントが 1 つの画面に収まるように、レイアウトを再設計することを検討してください。レイアウト コンポーネントが 1 つの画面に収まらないため、これは通常、スクロールを有効にするのに適したユーザー エクスペリエンスではありません。たとえば、ページをさらに追加して、そこにViewFlipper配置することができますListView

于 2013-03-25T13:46:14.413 に答える