添加无网络状态
在fragment_recipes.xml中添加
特别注意下方第三个也就是悬浮控件的设置,app:tint默认图案为白色,Android:tint设置没有效果。
<ImageView
android:id="@+id/error_imageView"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/ic_bad"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.456" />
<TextView
android:id="@+id/error_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="no_internet_connection"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/error_imageView" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="25dp"
android:layout_marginBottom="25dp"
android:clickable="true"
app:tint="@color/white"
android:src="@drawable/ic_restaurant"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
ShimmerRecyclerView的使用
用于设置默认加载动画的样式
1、导入依赖
//shimmerRecyclerView
implementation 'com.facebook.shimmer:shimmer:0.5.0'
implementation 'com.todkars:shimmer-recyclerview:0.4.1'
2、在fragment_recipes中添加shimmer
3、设计一个加载样式
该样式用于网络加载数据完成前的动画,以达到完美的衔接。
在recipes中添加
单个食谱布局
添加斜体样式在font-family点击右侧打开此界面进行添加
创建RecipesAdapter
关于RecyclerView以及adapter的使用,见前面的文章
class RecipesAdapter:RecyclerView.Adapter<RecipesAdapter.MyViewHolder>() {
class MyViewHolder(item: View): RecyclerView.ViewHolder(item){
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val layoutInflater = LayoutInflater.from(parent.context)
val view = layoutInflater.inflate(R.layout.recipes_layout,parent)
return MyViewHolder(view)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
}
override fun getItemCount(): Int {
return 20
}
}
未完待续……