【问题标题】:How to create an Horizontal List View inside of a Vertical List View?如何在垂直列表视图中创建水平列表视图?
【发布时间】:2016-05-21 05:33:08
【问题描述】:

我已成功在垂直列表视图中添加列表视图。 我的问题是水平列表视图。有人可以向我解释我应该如何创建水平 ListView 吗? 我应该切换到回收站视图来创建水平列表吗?还是我坚持使用 ListView?

感谢您的帮助!

【问题讨论】:

  • RecyclerView 是最好的选择

标签: android listview android-recyclerview horizontallistview


【解决方案1】:

使用带有 Horizo​​ntal LinearLayout 的 RecyclerView 作为带有 Vertical LinearLayoutManager 的垂直 RecyclerView 的项目视图。是的,如果您现在从头开始创建视图,请始终使用 Recycler View 而不是 ListView。

【讨论】:

    【解决方案2】:

    如果仍然有问题,您只需在 getView 中扩展布局,然后查看Answer。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-24
      • 2012-07-31
      相关资源
      最近更新 更多