マーケットなどのリスト ビューと非リスト ビューを組み合わせたベスト プラクティス

StackOverflow https://stackoverflow.com/questions/2036430

  •  19-09-2019
  •  | 
  •  

質問

私は、多くの Android 開発者が抱えていると思われる問題、つまり、スクロール可能な 1 つの大きなペイン内でリストとリスト以外のデータをどのように散在させるかという問題に取り組もうとしています。

私が念頭に置いているモデルは、マーケット内の個々のアプリの画面です。大きな説明、遅延して読み込まれるいくつかのコメントのリスト、そして開発者の Web ページにアクセスしたり、開発者に電話したりするなど、さまざまな動作を実行するいくつかの個別の項目があります。そして、それらすべての間には、素晴らしいセクションヘッダーがあります。

このアプローチをエミュレートするのは非常に難しいようです。SOの回答とメーリングリストの投稿を十分に読み、ScrollViewの中にListViewを配置しないことを知っていますが、非常に複雑なヘッダービューとフッタービューでaddHeader()とaddFooter()を使用せずに同じ効果が欲しいです。

自分でビューをストックしている LinearLayout を使用してみましたが、デフォルトのリスト項目が持つ快適なクリック効果 (オレンジ色の背景、ロングクリック時の白など) を得ることができません。

私は何をしますか?

役に立ちましたか?

解決

私のものを見てください MergeAdapter, 、このようなシナリオを処理するように設計されています。

他のヒント

なぜヘッダーを使用しないのでしょうか?それは簡単です。ヘッダーの内容を別のレイアウトで定義します。アクティビティ レイアウトには、 ListView 一番下に欲しいもの。スクロールビューはありません!

それから電話してください

View headerView = getLayoutInflater().inflate(R.layout.header_layout, null);
ListView listView = (ListView) findViewById(R.id.my_list_view);
listView.addHeaderView(headerView, null, false);   

その形式を呼び出すことが重要です addHeaderView ヘッダーが無効になるようにします。それ以外の場合は選択できますが、これはまったく奇妙に見えます。

マークの例はうまくいきます。基本的に、さまざまなビュータイプのアダプターが必要です。もう一つの良い例は、http://jsharkey.org/blog/2008/08/18/separating-lists-with-headers-in-android-09/区切り文字を使用して項目をグループ化したい場合は、Mark のものよりもうまく機能する可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top