Android 如何在垂直列表视图中创建水平列表视图?
我已经成功地在垂直列表视图中添加了列表视图。 我的问题是水平列表视图。有人能给我解释一下如何创建水平列表视图吗? 我是否应该切换到回收器视图以创建水平列表?还是我坚持使用列表视图Android 如何在垂直列表视图中创建水平列表视图?,android,listview,android-recyclerview,horizontallistview,Android,Listview,Android Recyclerview,Horizontallistview,我已经成功地在垂直列表视图中添加了列表视图。 我的问题是水平列表视图。有人能给我解释一下如何创建水平列表视图吗? 我是否应该切换到回收器视图以创建水平列表?还是我坚持使用列表视图 谢谢你的帮助 使用带有水平线性布局的RecyclerView作为带有垂直线性布局管理器的垂直RecyclerView的项目视图。是的,如果您现在从头开始创建视图,请始终使用Recycler视图,而不是ListView。如果仍然存在问题,您需要在getView中膨胀布局,然后查看此问题 @覆盖 公共视图getView(i
谢谢你的帮助 使用带有水平线性布局的RecyclerView作为带有垂直线性布局管理器的垂直RecyclerView的项目视图。是的,如果您现在从头开始创建视图,请始终使用Recycler视图,而不是ListView。如果仍然存在问题,您需要在getView中膨胀布局,然后查看此问题
@覆盖
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.horizontal\u list\u项,null,false);
LinearLayout mainLinnerLayout=(LinearLayout)convertView.findViewById(R.id.mainLinear);
for(int i=0;i RecyclerView)是最佳选项
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.horizontal_list_item, null,false);
LinearLayout mainLinnerLayout=(LinearLayout)convertView.findViewById(R.id.mainLinear);
for (int i = 0; i <5; i++) {
View additionView = inflater.inflate(R.layout.inner_layout_file, null,false);
LinearLayout innerLinnerLayout=(LinearLayout)additionView.findViewById(R.id.inner_layout);
// If the width varies for each innerLinnerLayout, then remove the if block & always calculate padding value
// padding is an integer initialized to -1 in the constructor
if (padding == -1) {
int width = context.getResources().getDisplayMetrics().widthPixels;
innerLinnerLayout.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
padding = width - additionView.getMeasuredWidth();
}
// I've set padding to right only, but you could center it by giving left and right padding of value=(padding/2)
innerLinnerLayout.setPadding(0, 0, padding, 0);
mainLinnerLayout.addView(innerLinnerLayout);
}
return convertView;
}