一. android studio依賴html
File-->Project Structure--->app-->Dependencies-->java
搜索:recyclerview-v7android
二:使用app
1.兩個佈局文件,ide
一個包含 <android.support.v7.widget.RecyclerView/> ,activity引用。佈局
file_manager_recycler_view.xml測試
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="40sp" android:text="這是一個 RecyclerView"/> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="wrap_content" android:layout_height="wrap_content"> </android.support.v7.widget.RecyclerView> </LinearLayout>
一個每一項的佈局。this
file_manager_recycler_view_item.xmlxml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/recycler_view_text" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
2. java類htm
package com.example.changhong.sysseting.FileManager; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.example.changhong.sysseting.R; public class FileManagerAdapter extends RecyclerView.Adapter<FileManagerAdapter.ViewHodler> { @NonNull @Override public ViewHodler onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { return new ViewHodler(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.file_manager_recycler_view_item, viewGroup, false)); } @Override public void onBindViewHolder(@NonNull ViewHodler myViewHodler, int i) { myViewHodler.textView.setText("test測試"+1); //設置每一項顯示得內容 } @Override public int getItemCount() { return 12; //將顯示12項 } public class ViewHodler extends RecyclerView.ViewHolder { TextView textView ; public ViewHodler(@NonNull View itemView) { super(itemView); textView = itemView.findViewById(R.id.recycler_view_text); //獲取顯示的view } } }
在activity中的使用
public class MainLocalPlayer extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.file_manager_recycler_view); RecyclerView recyclerView = findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(this)); recyclerView.setAdapter(new FileManagerAdapter()); } }
遇到的問題: 運行後 RecyclerView 只顯示第一項。
問題緣由:RecyclerView 的第一項佔據了全部的UI顯示位置。
解決辦法:file_manager_recycler_view_item.xml 中的 match_parent 修改成 wrap_content