androidgridview动态
1. android中gridView怎么在代码里动态设置每一列的宽度
1.android:layout_height="wrap_content"
2.layout.addView(progressBar, new LayoutParam(LayoutParam.FILL_PARENT, LayoutParam.FILL_PARENT));
参考看看就知道了吧
2. Android Studio 如何在代码中动态添加GridView
DecorView 是android 界面的顶级View ,当前界面的整个即为DecorView。DecorView为FrameLayout,而DecorView 一般会包含一个竖直方向的LinearLayout。这个竖直方向的LinearLayout 一般分为两个部分(具体Android版本和主题有所不同),上部分为标题栏,下部分为内容栏,而内容栏的id 为 android.R.id.content, 内容栏也是FrameLayout,我们使用setContentView(),的布局加入的就是内容栏。
动态添加View 一般是添加在我们自己的布局文件里,而setContentView时加入的我们的布局是内容栏的第一个子View,所以我们需要获取到我们的布局对应的View。
####如何获取DecorView?
在Activity 中直接调用 getWindow().getDecorView()
####如何获取ContentView?
在Activity中调用
FrameLayout contentView = (FrameLayout)getWindow().getDecorView().findViewById(android.R.id.content);
或直接:
FrameLayout contentView = (FrameLayout)activity.findViewById(android.R.id.content);
####获取我们填充的布局
ViewGroup viewGroup = (ViewGroup)contentView.getChildAt(0);
####添加View
3. 怎样动态设置GridView的宽和高(Android)
以下两种方式都可以做到:
一、在xml布局文件中设置,wrap_content即表示根据gridView的内容自使用宽高,代码如下:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
二、在代码中动态设置,可以在对gridview赋值之后,计算gridview的宽高,然后进行设置:
java">intheight=20;//此处的高度需要动态计算
intwidth=30;//此处的宽度需要动态计算
LinearLayout.LayoutParamslinearParams=newLayoutParams(width,height);
gridview.setLayoutParams(linearParams);//使设置好的布局参数应用到控件
需要注意的是:如果你的gridview是嵌套在ScrollView中,那么,你需要重写gridview控件,不然gridview只显示一行的问题(即高度不够),具体重写方式,可以参考下面代码:
/**
*@authorhnbcinfo
*自定义GridView控件,解决在ListView或ScrollView中使用GridView导致GridView显示不全的问题
*当前应用:时间轴中,图片显示
*/
{
publicGridViewForScrollView(Contextcontext,AttributeSetattrs){
super(context,attrs);
}
publicGridViewForScrollView(Contextcontext){
super(context);
}
publicGridViewForScrollView(Contextcontext,AttributeSetattrs,intdefStyle){
super(context,attrs,defStyle);
}
@Override
publicvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec){
intexpandSpec=MeasureSpec.makeMeasureSpec(
Integer.MAX_VALUE>>2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec,expandSpec);
}
}
4. Android gridview动态添加一条数据,并且是放在第一个的位置,求大神分享下
gridview的adapter数据源是一个list,然绝慧后你想添加的时候用list.add(0,数据)把数据添困悔加到第一个位置,然后adapter在汪宏正notify一下就行了
5. Android gridview动态添加一条数据,并且是放在第一个的位置,求大神分享下
gridview的adapter数据源是一个list,然后你想添加的时候用list.add(0,数据)把数据添加到第一个位置,然后adapter在notify一下就行了
6. android的gridview能不能动态改变行列显示数
不知道行不行,你可以试试下面的方法,,如果这个方法不行 那应该就不行
setNumColumns(int numColumns) 设置显示的列数 (有可能还需要调用一下Adapter的NotifyDataSetChanged)
要控制行数 只需要控制Adapter的 getCount回调的返回值就行了 然后notify刷新下!