如何在gridview中更改运行时的列数

时间:2014-02-23 14:57:20

标签: android android-layout gridview

我需要在运行时更改网格视图中的列数...如图所示...我是android的新手,我不知道如何实现...实现需要... in第一行应该有两个图像,然后是三列......

enter image description here

这是我的代码.....

public class List_of_players extends Fragment implements OnItemClickListener {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.list_of_players, container,
            false);
    GridView gridview = (GridView) rootView.findViewById(R.id.gridView1);
    gridview.setAdapter(new Customgrid(getActivity()));
    gridview.setOnItemClickListener(this);

    return rootView;
}

public class Customgrid extends BaseAdapter {
    private Context m1Context;

    public Customgrid(Context context) {
        super();
        this.m1Context = context;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 9;
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int arg0, View arg1, ViewGroup arg2) {
        LayoutInflater inflater = ((Activity) m1Context)
                .getLayoutInflater();
        View customRow1 = inflater.inflate(R.layout.players, null);
        return customRow1;
    }

}

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub
    Intent intnt = new Intent(getActivity(), Players_details.class);
    startActivity(intnt);
}

}

这是xml文件...

<GridView
    android:id="@+id/gridView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/gray"
    android:padding="10dp"
    android:numColumns="2"
    android:paddingBottom="10dp"
    android:paddingTop="10dp" >
</GridView>

1 个答案:

答案 0 :(得分:1)

我认为这根本不可能。 GridView应该看起来像一个网格。 如果你想要两个不同的行,请使用两种不同的布局:例如LinearLayout或GridView。

<!--two columns row -->
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"/>

<!--three columns row-->
<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"/>

在这种情况下,您可以动态更改每个布局内容甚至行号。