Android 如何在gridview中更改运行时的列数
我需要在运行时更改grid view dynamic中的列数…如图所示…我是android新手,不知道如何实现…实现要求…第一行中应该有两个图像,然后是三行中的列 这是我的代码Android 如何在gridview中更改运行时的列数,android,android-layout,gridview,Android,Android Layout,Gridview,我需要在运行时更改grid view dynamic中的列数…如图所示…我是android新手,不知道如何实现…实现要求…第一行中应该有两个图像,然后是三行中的列 这是我的代码 public class List_of_players extends Fragment implements OnItemClickListener { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,
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);
}
public class List\u播放器扩展片段实现mclicklinklistener{
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(R.layout.list of_播放器、容器、,
假);
GridView GridView=(GridView)rootView.findviewbyd(R.id.gridView1);
setAdapter(新的Customgrid(getActivity());
setOnItemClickListener(this);
返回rootView;
}
公共类Customgrid扩展BaseAdapter{
私人语境;
公共自定义网格(上下文){
超级();
this.m1Context=context;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回9;
}
@凌驾
公共对象getItem(int arg0){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共长getItemId(int arg0){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共视图getView(int arg0、视图arg1、视图组arg2){
排气充气器=((活动)m1Context)
.getLayoutInflater();
查看customRow1=充气机。充气(R.layout.players,null);
返回customRow1;
}
}
@凌驾
公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){
//TODO自动生成的方法存根
Intent intnt=新的Intent(getActivity(),Players\u details.class);
星触觉(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>
我认为这根本不可能。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"/>
在这种情况下,您可以动态更改每个版面内容,甚至行数。您好,我也遇到了同样的问题。这可能会有帮助。。