android上的刷新视图
我有一个从视图继承的类。(基本上它画了一个形状)。在我的主要活动中有一个按钮。 当我单击按钮时,创建一个从视图继承的新类,这样我就可以绘制新的形状。但在我的屏幕上发生了任何变化 这里是我的按钮点击事件android上的刷新视图,android,android-view,Android,Android View,我有一个从视图继承的类。(基本上它画了一个形状)。在我的主要活动中有一个按钮。 当我单击按钮时,创建一个从视图继承的新类,这样我就可以绘制新的形状。但在我的屏幕上发生了任何变化 这里是我的按钮点击事件 btn1.setOnClickListener(new OnClickListener() { public void onClick(View v) { mView.invalidate(); mView = new MyPen(getBaseConte
btn1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mView.invalidate();
mView = new MyPen(getBaseContext(), null);
mView.SetValueOlcu(tvOlcu.getText().toString());
frmLayout.addView(mView,LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
frmLayout.refreshDrawableState();
frmLayout.buildLayer();
Toast.makeText(getBaseContext(), "", Toast.LENGTH_SHORT).show();
}
});
*我使用了
refreshDrawableState()代码>但没有任何更改。如何更新反映屏幕上最后更改的视图为什么要在onClick中使用mView.invalidate()作为第一个命令,并且就在创建新的MyPen对象之前?这没有任何意义。当视图已在布局中绘制,并对其进行了一些更改以重新绘制时,应使用invalidate命令。也许你的视图可视化有问题?你的MyPen是做什么的?当我第一次加载屏幕时,我已经画出了一个形状。我已经画出了一个规则三角形,当点击按钮时,它会在这个规则三角形上添加新行。我的意思是MyPen画了一个规则三角形。我想你在屏幕上看不到任何变化的主要原因是你的MyPen视图对象大小。首先,当您使用wrap_内容属性创建视图时,您不会在构造函数方法中将此属性传递给父级。第二,我认为您需要重写onMeasure方法,让您的视图知道它应该占用多少空间。或者可以更精确地设置视图大小。也许这就是问题所在?不,我设定了价格,高度和宽度,但是,没有任何改变