Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android上的刷新视图_Android_Android View - Fatal编程技术网

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方法,让您的视图知道它应该占用多少空间。或者可以更精确地设置视图大小。也许这就是问题所在?不,我设定了价格,高度和宽度,但是,没有任何改变