我有一个简单的回收站视图,包含相对布局。除了在OnBindViewHolder();
添加文字视图外,目前布局中没有任何内容
该列表似乎在纵向模式下工作正常但是当我切换到横向并尝试滚动时,文本视图重叠并创建一个奇怪的外观。
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
RelativeLayout v = (RelativeLayout) LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_layout,parent,false);
context = parent.getContext();
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
TextView tv = new TextView(context);
tv.setText(mDataSet.get(position));
tv.setTextSize(20);
tv.setPadding(5,20,5,20);
holder.mLayout.addView(tv);
}
上面是我的适配器,下面是我打电话的活动 -
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_do_list);
mRecyclerView = findViewById(R.id.mainList);
mLayoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new MyAdapter(dataset);
mRecyclerView.setAdapter(mAdapter);
mRecyclerView.refreshDrawableState();
//testing
for(int i=0;i<20;i++)
dataset.add("Data "+(i+1));
}
我已经尝试在配置更改上执行refreshDrawableState();
并向清单添加配置更改。没有用。
答案 0 :(得分:3)
不要在addView
内创建新的TextView并使用onBindViewHolder
方法。
在每个ViewHolder实例上将多次调用此回调,因此将添加多个TextView。
您的TextView应该是recycler_layout
的一部分。
答案 1 :(得分:1)
将文字视图作为列表项目布局的一部分。
class ViewHolder{
TextView tv;
ViewHolder(View v){
tv = (TextView) v.findViewById(<textview_id>);
}
}
然后更改onBindViewHolder()
@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
holder.tv.setTextSize(20);
holder.tv.setPadding(5,20,5,20);
holder.tv.setText(mDataSet.get(position));
}
希望这会有所帮助。