如何在Android上创建非对称布局

时间:2014-12-09 11:07:37

标签: android listview gridview grid-layout

如何创建类似于附加图像的非对称布局?标准的android指南仅显示如何创建对称列表和表

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试使用AsymmetricGridView。 GridView不支持这样做。您可以使用GridLayout来实现此目的,但它不使用AbsListView,您不能使用回收。

答案 1 :(得分:0)

  1. 为行设置左对齐(左边的大图片)和右对齐(右边的大图片)XML布局。每个都有一个包含大图片(左侧或右侧)的水平ListView和另一个包含小图片的垂直ListView。

  2. 在ListView的适配器中,根据位置是奇数还是偶数(如类似)选择右对齐或左对齐布局:

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    
    View rowView = convertView;
    
    //Reuse views.
    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (rowView == null && (position % 2) == 0 //even position) {
        rowView = mInflater.inflate(R.layout.your_right_aligned_layout, parent, false); }
    else if (rowView == null && (position % 2) != 0 //odd position){
        rowView = mInflater.inflate(R.layout.your_left_aligned_layout, parent, false); }
    ...