高版本android型号手机动态添加GridLayout不显示问题

高版本android型号手机动态添加GridLayout不显示问题,第1张

在7.0版本的手机中,出现了动态添加GridLayout不显示,一直白板的问题。

经过多种LayoutParams的测试,发现GridLayout.LayoutParams并不能显示,LinearLayout.LayoutParams可以,这个时候我就有个灵感,可不可以把GridLayout.LayoutParams换成LinearLayout.LayoutParams,然后我就看GridLayout的源码方法,发现没有直接设置宽高的构造方法,然后找到一个set其他LayoutParams的方法,这个时候我就高兴了,我就直接在构造方法中写入LinearLayout.LayoutParams

就是这样,就解决了

通过使用LayoutInflater 每次点击按钮时候去读取布局文件,然后找到布局文件里面的各个VIEW *** 作完VIEW

后加载进我们setContentView 方面里面的要放的布局文件里面,每次动态加载文件必需 调用

removeAllViews方法,清除之前的加载进来的 View 。是不是很简单?当然动态加载VIEW

还有许多种方法,多尝试不同写法。可能会领会不一样的心得,祝你早上掌握android 的开发技术。

主要原理:在一个分割出来的大的Layout中(如图中的白色区域),使用layout.removeAllViews()和layout.addView()实现动态加载,其中要使用的LayoutInflater等。

动态添加Android(安卓)控件步骤:

1、addView

添加控件到布局容器

2、removeView

在布局容器中删掉已有的控件

3、使用

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState)

// 生成一个LinearLayout,作为布局容器来动态添加3个Button

final LinearLayout layout = new LinearLayout(this)

layout.setOrientation(LinearLayout.VERTICAL)

setContentView(layout)

// 生成3个Button

final Button btn1 = new Button(this)

btn1.setText("1")

btn1.setText("Button1")

final Button btn2 = new Button(this)

btn2.setText("2")

btn2.setText("Button2")

final Button btn3 = new Button(this)

btn3.setText("3")

btn3.setText("Button3")

// 动态把三个Button添加到

layout.addView(btn1)

layout.addView(btn2)

layout.addView(btn3)

// 点击按钮时,先把原来在布局容器layout上的删掉,再添加上局容器layout,这样本次添加的控件就会排序到最后,以理解动态添加控件的思路

btn1.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

layout.removeView(btn1)

layout.addView(btn1)

}

})

// 同btn1一样道理

btn2.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

layout.removeView(btn2)

layout.addView(btn2)

}

})

// 同btn1一样道理

btn3.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

layout.removeView(btn3)

layout.addView(btn3)

}

})

setContentView(layout)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11271703.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存