我有一個應用程序,我想在recyclerview中顯示服務器的dataList,當我滾動到recyclerView結束時,想要顯示底部的進度條,並且我還在recyclerview之間添加了AdsView,但它與recyclerView的項目重疊指定的索引。顯示視圖時,它與recyclerview中的項目重疊?
代碼: -
@Override
public int getItemViewType(int position) {
if (contacts.get(position) == null)
return VIEW_TYPE_LOADING;
else if (position % 5 == 0)
return AD_VIEW;
else {
return VIEW_TYPE_ITEM;
}
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
if (viewType == AD_VIEW) {
View adView = LayoutInflater.from(parent.getContext()).inflate(R.layout.add, parent, false);
return new AdView(adView);
} else if (viewType == VIEW_TYPE_ITEM) {
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycler_view_row, parent, false);
return new UserViewHolder(view);
} else if (viewType == VIEW_TYPE_LOADING) {
view = LayoutInflater.from(activity).inflate(R.layout.item_loading, parent, false);
return new LoadingViewHolder(view);
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof AdView) {
AdView adView = (AdView) holder;
adView.textView.setText("Ads");
} else if (holder instanceof UserViewHolder) {
Contact contact = contacts.get(position);
UserViewHolder userViewHolder = (UserViewHolder) holder;
userViewHolder.phone.setText(contact.getEmail());
userViewHolder.email.setText(contact.getPhone());
} else if (holder instanceof LoadingViewHolder) {
LoadingViewHolder loadingViewHolder = (LoadingViewHolder) holder;
loadingViewHolder.progressBar.setIndeterminate(true);
}
}
@Override
public int getItemCount() {
return contacts == null ? 0 : contacts.size();
}
XML主
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
ItemView控件
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:selectableItemBackground"
android:padding="10dp">
<TextView
android:id="@+id/txt_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txt_email"
android:textColor="@android:color/black"
android:textSize="12sp" />
</RelativeLayout>
的XML
XML loadingview的: - 需要爲了讓我們理解元素是如何排序,並視對方
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ProgressBar
android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" />
請發佈您用於此目的的XML(Progressbar,recyclerview) –
爲什麼需要xml – Raghav
我的問題是隻有當額外的視圖名爲「AD_VIEW」時,它與指定索引處的recyclerview項重疊時才被命名爲「AD_VIEW」。 .. – Raghav