RecyclerView只能显示一行的问题
2016-10-24 17:36
302 查看
最近想把listView换成RecyclerView,但是遇到了只能显示一行的问题,如图:
代码如下:
package com.app.eaju.recyleviewdemo;
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
RecyclerView mr;
List list;
Myadapter adapter;
}
经过查找原因,是因为 MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
MainActivity.this).inflate(R.layout.item_recycle, parent,
false));
中parent限制了反射后布局的显示,改为以下即可:
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(MainActivity.this).inflate(R.layout.item_recycle, null));
原因分析:
其实,在显示一行的时候其余的行也被显示了,只不过因为每行都是match_parent得到了,也就是占了满屏,所以我们看到的只有一行,你想上啦动,就会看到其他行了.
此种显示一行的状态状态在listView中也有出现过,不过是确实是只一行,当时是因为holder=(ViewHolder)converView.getag();后的大括号写在了return convertView之后
代码如下:
package com.app.eaju.recyleviewdemo;
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
RecyclerView mr;
List list;
Myadapter adapter;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); initView(); } private void initData() { list = new ArrayList<String>(); for (int i = 0; i < 30; i++) { list.add("" + i); } } private void initView() { mr = (RecyclerView) findViewById(R.id.rv); //设置布局管理器 mr.setLayoutManager(new LinearLayoutManager(this)); //设置adapter mr.setAdapter(new Myadapter()); //设置item增加移除动画 mr.setItemAnimator(new DefaultItemAnimator()); //添加分割线 mr.addItemDecoration(new DividerItemDecoration( this, DividerItemDecoration.HORIZONTAL_LIST)); } class Myadapter extends RecyclerView.Adapter<Myadapter.MyViewHolder> { @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( MainActivity.this).inflate(R.layout.item_recycle, parent, false)); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.tv.setText(list.get(position)); } @Override public int getItemCount() { return (list == null) ? 0 : list.size(); } class MyViewHolder extends RecyclerView.ViewHolder { TextView tv; public MyViewHolder(View view) { super(view); tv = (TextView) view.findViewById(R.id.tv_item_recycle); } } }
}
经过查找原因,是因为 MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
MainActivity.this).inflate(R.layout.item_recycle, parent,
false));
中parent限制了反射后布局的显示,改为以下即可:
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(MainActivity.this).inflate(R.layout.item_recycle, null));
原因分析:
其实,在显示一行的时候其余的行也被显示了,只不过因为每行都是match_parent得到了,也就是占了满屏,所以我们看到的只有一行,你想上啦动,就会看到其他行了.
此种显示一行的状态状态在listView中也有出现过,不过是确实是只一行,当时是因为holder=(ViewHolder)converView.getag();后的大括号写在了return convertView之后
相关文章推荐
- 使用RecyclerView时,只能显示第一行问题解决
- Android RecyclerView经常遇到不能显示数据或只显示一行数据的问题
- RecyclerView, ListView 只显示一行内容 问题解决
- TextView在显示文字的时候有个问题就是一行还没显示满就跳到下一行
- Android中Scrollview嵌套recyclerView,recyclerview设置wrapcontent无法显示以及显示后item显示不全的问题
- android RecyclerView 中添加 FooterView 和 DividerItemDecoration 后不能正确显示的问题
- Android 6.0 scrollview 嵌套recyclerview不能全部显示,高度不正常的问题
- Android 6.0 scrollview 嵌套recyclerview不能全部显示,高度不正常的问题
- RecyclerView 添加数据不显示的问题
- RecyclerView 在ScrollView部分机型无法下拉显示不全(兼容问题)
- RecyclerView Item不显示的问题
- RecyclerView嵌入CheckBox带来的显示问题的解决办法
- RecyclerView嵌套GridView显示不全,Item的复用的问题
- Android 6.0 解决recyclerview 在 scrollview 中不能全部显示,高度不正常的问题。
- Android 6.0 解决recyclerview 在 scrollview 中不能全部显示,高度不正常的问题
- Tableview最后一行无法显示或者显示不全的问题IOS
- 关于ListView在ScrollView中只能显示一行数据的问题
- 解决Scrollview 嵌套recyclerview不能显示,高度不正常的问题
- ScrollView嵌套RecyclerView,RecyclerView不显示问题
- 解决ScrollView嵌套RecyclerView,RecyclerView不显示问题