【发布时间】:2014-03-06 18:32:17
【问题描述】:
我是 android 新手,我想将一长串 textViews 添加到 LinearLayout(大约 200 个 textviews)。
如您所知,将大视图添加到布局会导致 Activity 冻结,直到添加所有文本视图。我想在每个 addview 之后刷新布局并显示添加到布局中的新 textview。我已经测试了我想到的所有内容,并在整个网络上搜索了答案,我知道我必须使用线程,但没有一个线程对我有用。
我使用过 ListView,但它太慢了,因为它需要让这么多控件在它们看不见时不可见。
如何在每次查看后强制刷新?
编辑:
这是被膨胀了大约 100 次的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:pixlui="http://schemas.android.com/apk/com.neopixl.pixlui"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp" >
<com.neopixl.pixlui.components.textview.TextView
android:id="@+id/itemTitle1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text=""
android:textColor="#58595b"
android:textSize="@dimen/details_title_font_size"
pixlui:typeface="font.ttf" />
<JustifiedTextView
android:id="@+id/itemText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text=""
android:textColor="#58595b"
android:textSize="@dimen/details_font_size"
android:lineSpacingMultiplier="2"/>
</LinearLayout>
这是我BaseAdapter的getView方法:
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.rowitemview, null);
holder = new ViewHolder();
holder.title1 = (TextView) ((LinearLayout)convertView).getChildAt(0);
holder.text1 = (JustifiedTextView) ((LinearLayout)convertView).getChildAt(1);
holder.text1.SetTextAlign(Align.RIGHT);
holder.text1.setTypeface(font);
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
holder.title1.setText(getItem(position).getTitle());
holder.text1.setText(getItem(position).getDesc());
return convertView;
}
这个ListView 的问题是它在向上或向下滚动时非常滞后。我什至尝试过延迟加载项目,但也没有用。
【问题讨论】:
-
添加您尝试过的代码。
-
正如 NameSpace 所说,如果您有这么多视图,您应该使用 ListView。当您尝试制作 ListView 时,您必须控制什么并且很难?也许我们可以帮助你。
-
我编辑了我的问题,并为
ListView添加了一些代码
标签: android