我正在尝试显示一个RecyclerView,它最初在从API获取数据之前加载骨架视图。在下面的示例中,正在显示简单的图像视图和文本。
<android.support.v7.widget.CardView
android:id="@+id/cv_store_offer_display"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="50dp"
android:scaleType="fitXY"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Foo FOO"/>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
我想知道如何在我的Recyclerview加载图像/文本之前显示视图。我正在使用Picasso来加载图像。 mikepenz FastAdapter用于显示RecyclerView内容。
我还尝试使用https://stackoverflow.com/a/12342168/371557中提到的进度条。但即使可见性设置为VISIBLE,也从未显示进度条。
答案 0 :(得分:5)
你可以使用像
这样的东西picasso.load(url)
.placeholder( R.drawable.place_holder )
.into(imageView);
答案 1 :(得分:1)
<!--You Would Apply Like this-->
Picasso.load(url)
.placeholder( R.drawable.img_place_holder)
.into(imageView);
<!--Use ProgressBar-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/sliding_popup_window"
android:layout_below="@+id/bank_info_toolbar"
>
</android.support.v7.widget.RecyclerView>
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
/>
</RelativeLayout>
//Your ProgressBar code
class Synch extends AsynchTask<void, void, void> {
public void onPreExecute() {
//your code
progressBar.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
}
}
public void doinBackground() {
//Your Code
}
public void onPostExecute() {
progressBar.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
}