チャットアプリケーションを作成しています。
チャットメッセージビュー内に、最後の20メッセージをレンダリングし、プログラムでScrollViewに追加するアクティビティがあります。
それは実際にはかなりうまくそして速く動作します。
それを終えた後、私は考えるのをやめて、ListViewを使用してもっと簡単に(そしておそらくもっと効率的に)それを行うことができたことに気づきました。
本当に本当ですか?努力してビューをListViewに変更する必要がありますか?
チャットアプリケーションを作成しています。
チャットメッセージビュー内に、最後の20メッセージをレンダリングし、プログラムでScrollViewに追加するアクティビティがあります。
それは実際にはかなりうまくそして速く動作します。
それを終えた後、私は考えるのをやめて、ListViewを使用してもっと簡単に(そしておそらくもっと効率的に)それを行うことができたことに気づきました。
本当に本当ですか?努力してビューをListViewに変更する必要がありますか?
主な理由の1つとして、「はい」と言いますListView
。画面に表示されるビューをリサイクルして、非常に効率的にします。たとえば、小さい画面で6または7 ishのビューを保持し、それらを再利用するため、20ビューがメモリを占有していると言うよりもはるかに効率的です。簡単なことに関しては、それは議論の余地があります。しかし、間違いなくListViewをお勧めします。ScrollViewは速く感じるかもしれませんが、デバイスや他のアプリのパフォーマンス全般についても考える必要があります。
アプリにチャット機能があり、アダプターを使用してメッセージをリストビューに膨らませています。以下は私のxmlレイアウトのサンプルです:
messages.xml
<LinearLayout
<TextView </TextView>
<ListView </ListView>
</LinearLayout>
message_item.xml
<RelativeLayout>
<LinearLayout>
<LinearLayout>
<LinearLayout>
<LinearLayout>
<TextView></TextView>
<TextView></TextView>
</LinearLayout>
<TextView></TextView>
</LinearLayout>
<ImageView></ImageView>
</LinearLayout>
</LinearLayout>
<TextView></TextView>
</RelativeLayout>
それがお役に立てば幸いです:)
Androidのソースコードをスキャンして、ListViewの実装方法を学ぶことができます。
その後、答えが見つかると思います。
ics / framework / base / core / java / android / widget / ListView.java
そうですね、そのプロパティのために、listViewを使用する方が効率的だと思います。また、スクロールビューで行ったことには、ListViewと同じ機能があります。あなたは私が思うに車輪を作り直している。ここに良い例があります:)