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;
}