我对Android开发者来说比较新,所以如果这是一个基本问题,请原谅我。我有一个ListActivity,它在加载信息时显示进度条,然后隐藏。但是,它下面的listview的每一行都有自己的进度条。我怎样才能防止这种情况发生?我发现了一些类似的问题,但没有正确的答案。 编辑:这是resultslist.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="6dip">
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/results_list_progress_bar"/>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_below="@id/results_list_progress_bar"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<ImageView
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:id="@+id/result_icon"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO" />
<TextView
android:id="@+id/result_title"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/result_icon"
android:ellipsize="marquee"
android:singleLine="true"
android:textSize="12sp"
/>
<TextView
android:id="@+id/result_description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/result_title"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_toRightOf="@id/result_icon"
android:gravity="center_vertical"
android:singleLine="true"
android:textSize="12sp"
/>
</LinearLayout>
它的价值,这里是我的数组适配器的代码:
LayoutInflater inflater = (LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.resultslist, parent, false);
这是一张图片,显示了每行顶部的进度条:
任何帮助将不胜感激!谢谢!
答案 0 :(得分:2)
我相信您正在与activity view
充气list item view
,请查看适配器的视图
从您的更新开始,可以看出您实际上正在夸大相同的视图
溶液:
您的主xml视图(将其置于线性布局中):
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/results_list_progress_bar"/>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_below="@id/results_list_progress_bar"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
您的列表项视图(将其置于线性布局中):
<ImageView
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:id="@+id/result_icon"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO" />
<TextView
android:id="@+id/result_title"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/result_icon"
android:ellipsize="marquee"
android:singleLine="true"
android:textSize="12sp"
/>
<TextView
android:id="@+id/result_description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/result_title"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_toRightOf="@id/result_icon"
android:gravity="center_vertical"
android:singleLine="true"
android:textSize="12sp"
/>
答案 1 :(得分:1)
看起来你正在做的是为你的ListView
和你的活动夸大相同的布局。这意味着除了您想要的所有其他内容之外,ListView
中的每个项目都会有ProgressBar
和ListView
。你应该做的是移动这些项目:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="6dip">
<ImageView
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:id="@+id/result_icon"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dip"
android:contentDescription="TODO" />
<TextView
android:id="@+id/result_title"
android:layout_width="fill_parent"
android:layout_height="26dip"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/result_icon"
android:ellipsize="marquee"
android:singleLine="true"
android:textSize="12sp"
/>
<TextView
android:id="@+id/result_description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/result_title"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_alignWithParentIfMissing="true"
android:layout_toRightOf="@id/result_icon"
android:gravity="center_vertical"
android:singleLine="true"
android:textSize="12sp"
/>
</LinearLayout>
进入新布局,我们称之为listviewlayout.xml
。然后,将活动中的代码更改为:
LayoutInflater inflater = (LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.listviewlayout, parent, false);
然后你将其他东西保留在你的第一个布局中。