gpt4 book ai didi

java - 将按钮添加到自定义 View

转载 作者:行者123 更新时间:2023-12-02 03:15:41 25 4
gpt4 key购买 nike

我尝试扩展 LinearLayout 而不是简单的 View 来添加按钮和 View 的工作子级,但我仍然没有得到任何输出。从概念上讲,我在某个地方错了。

public class TouchEventView extends LinearLayout {

private Paint paint = new Paint();
private Path path = new Path();
private ViewGroup viewGroup;

public TouchEventView(Context ctx) {
super(ctx);

//Button Code Starts Here
LinearLayout touch = new TouchEventView(ctx);
Button bt = new Button(ctx);
bt.setText("A Button");
bt.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
touch.addView(bt); //Button Not Working
paint.setAntiAlias(true);
paint.setColor(Color.BLACK);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5f);
this.setBackgroundColor(Color.WHITE);
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawPath(path,paint);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
float xPos = event.getX();
float yPos = event.getY();

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(xPos,yPos);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(xPos,yPos);
break;
case MotionEvent.ACTION_UP:
break;
default:
return false;
}

invalidate();
return true;
}

}

最佳答案

问题是您正在创建一个新的 TouchEventView 并将 Button 添加到该 View。相反,您应该将 Button 直接添加到当前的View

如果您希望能够从 XML 获取任何属性,您还应该实现 LinearLayout 中的其他构造函数。

public class TouchEventView extends LinearLayout {

public TouchEventView(Context context) {
this(context, null);
}

public TouchEventView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}

public TouchEventView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}

private void init() {
Button button = new Button(getContext());
button.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
addView(button);
}

}

关于java - 将按钮添加到自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40348432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com