一. android studio依赖
File-->Project Structure--->app-->Dependencies-->
搜索:recyclerview-v7
二:使用
1.两个布局文件,
一个包含 <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>
一个每一项的布局。
file_manager_recycler_view_item.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="wrap_content">
<TextView
android:id="@+id/recycler_view_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
2. java类
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