2013-04-01 12 views
1

如果我們將項目添加到gridView爲水平自動添加,如何在Android中按列從上到下垂直添加項目到gridView如何將項目垂直添加到gridiview

+0

嘗試一下:如果已經定位= vertical' ...垂直嘗試將其更改爲「水平」 –

回答

1

GridView在大多數情況下使用ListAdapter。您不要將項目添加到GridView,而是將它們添加到適配器。

ListAdapters不是爲您提供基於網格的佈局。所以,這是不可能的。我不認爲GridView支持在隨機索引中添加項目。至少,文件沒有提到這一點。

+0

我想在gridview中使用幾列 – Jamshid

+0

@Jamshid您可以設置GridView的柱面數量。但是你的問題不清楚,你想達到什麼目的? – JJ86

0

這是網格視圖適配器的getView方法

@Override 
    public View getView(final int i, View view, ViewGroup viewGroup) { 
     ListView listView; 
     if (view == null) { 
      listView = (ListView) LayoutInflater.from(mContext).inflate(R.layout.product_list_row, null); 
      listView.setLayoutParams(new GridView.LayoutParams(COLUMN_WIDTH, COLUMN_WIDTH * max_size)); 
      listView.setDividerHeight(0); 
      listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> adapterView, View view, int index, long l) { 
        if (getItem(i).size() > index) { 
         Product product = getItem(i).get(index); 
         if (product != null && !product.getStartPrice().equalsIgnoreCase("")) { 
          ItemDetailDialog dialog = new ItemDetailDialog(mContext, getItem(i), index); 
          dialog.show(); 
         } 
        } 
       } 
      }); 

      listView.setOnTouchListener(new View.OnTouchListener() { 
       @Override 
       public boolean onTouch(View view, MotionEvent motionEvent) { 
        return false; 
       } 
      }); 
     } else { 
      listView = (ListView) view; 
     } 

     ListViewAdapter adapter = new ListViewAdapter(getItem(i)); 
     listView.setAdapter(adapter); 

     listView.setCacheColorHint(0); 

     listView.setId(i); 

     listView.setOnTouchListener(new View.OnTouchListener() { 
      public boolean onTouch(View v, MotionEvent event) { 
       // Disallow the touch request for parent scroll on touch of child view 
//    v.getParent().requestDisallowInterceptTouchEvent(true); 
       return false; 
      } 
     }); 

     return listView; 
    } 

這是列表視圖中使用`Android的適配器

/** 
* list view adapter 
*/ 
private class ListViewAdapter extends BaseAdapter { 

    // list products 
    private List<Product> products; 

    // 
    ProductRowView productRowView; 

    // 
    Product product; 

    // constructor 
    private ListViewAdapter(List<Product> products){ 
     this.products = products; 
    } 

    @Override 
    public int getCount() { 
     return products.size(); 
    } 

    @Override 
    public Product getItem(int i) { 
     if (products.size() <= i) 
      return null; 
     return products.get(i); 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int index, View convertView, ViewGroup parent) { 

     // any code 
     return convertView; 
    } 
相關問題