ListView和RecycleView显示问题
代码检查了好几遍都不知道出错在哪
把RecyclerView的代码附上
希望有大神帮忙
FruitAdapter适配器代码:
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
private List<Fruit> mFruitList;
public FruitAdapter(List<Fruit> fruitList){
mFruitList=fruitList;
}
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fruit_item,viewGroup,false);
ViewHolder holder=new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int i) {
Fruit fruit=mFruitList.get(i);
holder.fruitname.setText(fruit.getName());
holder.fruitimage.setImageResource(fruit.getImageId());
}
@Override
public int getItemCount() {
return mFruitList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView fruitimage;
TextView fruitname;
public ViewHolder(@NonNull View itemView) {
super(itemView);
fruitimage=(ImageView)itemView.findViewById(R.id.fruit_image);
fruitname=(TextView)itemView.findViewById(R.id.fruit_name);
}
}
}
MainActivity代码
public class MainActivity extends AppCompatActivity {
private List<Fruit> fruitList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
RecyclerView recyclerView=(RecyclerView)findViewById(R.id.recycler);
LinearLayoutManager layoutManager=new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
FruitAdapter adapter=new FruitAdapter(fruitList);
recyclerView.setAdapter(adapter);
}
private void init(){
for(int i=0;i<2;i++){
Fruit a=new Fruit("a",R.mipmap.ic_launcher);
fruitList.add(a);
Fruit b=new Fruit("b",R.mipmap.ic_launcher);
fruitList.add(b);
Fruit c=new Fruit("c",R.mipmap.ic_launcher);
fruitList.add(c);
Fruit d=new Fruit("d",R.mipmap.ic_launcher);
fruitList.add(d);
Fruit e=new Fruit("e",R.mipmap.ic_launcher);
fruitList.add(e);
Fruit f=new Fruit("f",R.mipmap.ic_launcher);
fruitList.add(f);
Fruit g=new Fruit("g",R.mipmap.ic_launcher);
fruitList.add(g);
}
}
}
Fruit——item.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/fruit_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/fruit_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"/>
</LinearLayout>
把RecyclerView的代码附上
希望有大神帮忙
FruitAdapter适配器代码:
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
private List<Fruit> mFruitList;
public FruitAdapter(List<Fruit> fruitList){
mFruitList=fruitList;
}
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view=LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fruit_item,viewGroup,false);
ViewHolder holder=new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int i) {
Fruit fruit=mFruitList.get(i);
holder.fruitname.setText(fruit.getName());
holder.fruitimage.setImageResource(fruit.getImageId());
}
@Override
public int getItemCount() {
return mFruitList.size();
}
static class ViewHolder extends RecyclerView.ViewHolder{
ImageView fruitimage;
TextView fruitname;
public ViewHolder(@NonNull View itemView) {
super(itemView);
fruitimage=(ImageView)itemView.findViewById(R.id.fruit_image);
fruitname=(TextView)itemView.findViewById(R.id.fruit_name);
}
}
}
MainActivity代码
public class MainActivity extends AppCompatActivity {
private List<Fruit> fruitList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
RecyclerView recyclerView=(RecyclerView)findViewById(R.id.recycler);
LinearLayoutManager layoutManager=new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
FruitAdapter adapter=new FruitAdapter(fruitList);
recyclerView.setAdapter(adapter);
}
private void init(){
for(int i=0;i<2;i++){
Fruit a=new Fruit("a",R.mipmap.ic_launcher);
fruitList.add(a);
Fruit b=new Fruit("b",R.mipmap.ic_launcher);
fruitList.add(b);
Fruit c=new Fruit("c",R.mipmap.ic_launcher);
fruitList.add(c);
Fruit d=new Fruit("d",R.mipmap.ic_launcher);
fruitList.add(d);
Fruit e=new Fruit("e",R.mipmap.ic_launcher);
fruitList.add(e);
Fruit f=new Fruit("f",R.mipmap.ic_launcher);
fruitList.add(f);
Fruit g=new Fruit("g",R.mipmap.ic_launcher);
fruitList.add(g);
}
}
}
Fruit——item.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/fruit_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/fruit_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"/>
</LinearLayout>
...全文
相关推荐
RecycleView,ListView的替代品
然而,ListView在处理复杂布局和动画时显得力不从心,特别是在滚动过程中,容易出现卡顿和性能问题。RecycleView的出现正是为了解决ListView的这些问题。
Android RecycleView之listView、gridView、瀑布流.zip
接着,`GridView`是一种显示多列数据的控件,与ListView类似,但它的每个item都是横纵两个方向扩展。
ScrollView嵌套ListView
ListView则是一个可以展示多行数据的视图,通常用于显示长列表,它通过视图复用来高效地处理大量数据。
scrollview与listview共存
首先,理解问题的本质:ScrollView是一个全屏可滚动的布局,它允许其内部的所有内容都可以滚动。而ListView是专门为显示长列表设计的,每个列表项可以通过适配器动态加载,以优化内存使用和性能。
由滑动顶端悬浮引发的性能优化大坑坑坑—ScrollView嵌套ListView以及层层嵌套
**使用Header和Footer**:在RecycleView或ListView中添加固定头和脚部视图,而不是嵌套一个ScrollView。这样既能满足设计需求,又避免了性能问题。5.


