リストビューとテーブルビューを使用してFacebookのフィードを開発しようとしています。各行には、リストビューにコメントを含むフィードポストがあります。フィードのデータオブジェクトを配列リストに格納しています。私はそれがAのだから、テーブルレイアウトリストビューでのitemviewのテーブルレイアウトandroidパフォーマンス
に追加することができるように、私はコメントのレイアウトを膨らまいaddcomments機能で再びこの
public View getView(final int position, View convertView, ViewGroup parent) {
feedItem = FeedItems.get(position);
convertView = layoutInflater.inflate(R.layout.feed_main, null);
TableLayout mainFeedLayout = (TableLayout) convertView
.findViewById(R.id.blogFeedTableLayout);
TextView displayName = (TextView) convertView
.findViewById(R.id.feed_username);
TextView description = (TextView) convertView
.findViewById(R.id.comment_text);
// Set the text to the texview
.
.
.
// Adding comments to the feed
for (int i = 0; i < feedItem.feedComments.size(); i++) {
mainFeedLayout .addView(addComment(
convertView, feedItem.feedComments.get(i)));
}
}
のようにやっている私のgetビューで
class FeedPost{
String username;
String imageUrl;
String feedpostText;
ArrayList<Comment> comments;}
1つのフィードをリストビューに表示するには、各フィード項目のコメントをチェックしてフィードに表示しています。これは本当に痛いし、遅いです。
レイアウトの代わりにスタティックホルダーを使用してみましたが、毎回膨らませてみました。また、それはまた動作しませんでした。 mulitple異なるビューがある場合、私は "SackOfViewsAdapter"のcommonsguyを試してみました。しかし、実際それは異なった意見ではありません。
facebookはwebviewを使い、ユーザーのフィードを表示するためにhtmlを表示すると思います。アンドロイドのネイティブレイアウトとコードを使用して同じことを行う最善の方法は何ですか?この種の複雑なデータを表示するための最良の方法を提案するのに手伝ってください。
リサイクルの見解はとにかく速くなければなりません。クラスをArrayAddapter
テーブルのレイアウトはコンテンツによって異なるため、リサイクルは難しいです。 Facebookのフィードビューを検討してください。フィードごとのコメントは投稿ごとに異なるので、私が信じているビューをリサイクルするのは簡単ではありません。助言がありますか? – Madjokr
あなたは間違っている、あなたはたくさんリサイクルすることができます。これで、すべてのリスト項目に対してTextViewsをインスタンス化する必要があります。リサイクルする場合は、すべてのリスト項目のテキストを設定するだけです。リサイクルについてもう少し詳しくお読みになり、デバッグ中にどのように動作するかをご覧ください。 – Dante