我想在列表项目中添加一个“ProgressBar”(就像Chrome中的Android一样,当你加载一个新网页时),它将显示当前课程的进度。 (这是关于学校的一个应用程序,所有安排)。
目前我有(截图有点过时,我已设法通过this修复得到最后一个分隔符):
在每个项目后,您会在屏幕截图上看到一个分隔线,一条灰线。我想用进度条替换这个(不是所有的分隔符,只有一个。当你加载新的网页时,与Android的Chrome相同的进度条)。我怎么能这样做?
我目前的ScheduleAdapter:
package nl.devapp.ictcollege.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.List;
import nl.devapp.ictcollege.R;
import nl.devapp.ictcollege.models.Schedule;
public class ScheduleAdapter extends BaseAdapter {
private LayoutInflater inflater;
private List<Schedule> items;
public ScheduleAdapter(Context context, List<Schedule> list) {
this.items = list;
this.inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
if (this.items == null || this.items.isEmpty()) {
return 0;
} else {
return this.items.size();
}
}
@Override
public Schedule getItem(int position) {
return this.items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (convertView == null)
view = this.inflater.inflate(R.layout.row_schedule, null);
Schedule item = this.getItem(position);
TextView number = (TextView) view.findViewById(R.id.item_number);
TextView lesson = (TextView) view.findViewById(R.id.item_lesson);
TextView to = (TextView) view.findViewById(R.id.item_to);
TextView classRoom = (TextView) view.findViewById(R.id.item_class_room);
number.setText(Integer.toString(item.getHour()));
lesson.setText(item.getLesson());
to.setText(item.getTo());
classRoom.setText(item.getClassRoom());
return view;
}
}
和我的FragmentSchedule xml(我创建ListView):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="nl.devapp.ictcollege.fragments.SelectFragment">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rooster_list"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:footerDividersEnabled="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/last_sync"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
我的row_schedule:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp" >
<TextView
android:id="@+id/item_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/item_class_room"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/item_lesson"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/item_number" />
<TextView
android:id="@+id/item_to"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
谢谢!
答案 0 :(得分:1)
我很确定不可能为不同的列表项设置不同的分隔符(将分隔符设置为整个ListView
,而不是项目本身)。
我只需在ProgressBar
中添加row_schedule
,即可将其设置为gone
。在适配器的getView方法中,检查该行是否是您要显示ProgressBar的行,并将其设置为visible
的可见性。保留对ProgressBar
的引用并根据进度进行更新。
编辑:其他可能性:创建仅包含ProgressBar
的布局。如果要显示ProgressBar
下方的项目位于列表中的索引3,则位于getView()
的位置4,您会膨胀ProgressBar
布局而不是正常的列表项布局并返回风景。
在getCount()
中,您必须返回商品的数量+ 1.