Android中没有看到自定义布局:按钮

时间:2014-07-11 12:56:35

标签: android android-custom-view

所以伙计们,

我制作了自定义布局,扩展了ViewGroup.Earlier,我制作了自定义视图,但后来我发现它不能包含像按钮这样的子节点。我确实扩展了viewgroup,因为我想添加按钮,比如线性布局,只是触摸时发光的属性。线性布局中还有其他任何东西。

WrapLayout类

public class WrapLayout extends ViewGroup { 
boolean drawGlow = false;
float glowX = 0;
float glowY = 0;
float radius = 20;
Paint paint = new Paint();
{
    paint.setAntiAlias(true);
    paint.setColor(3515877);
    paint.setAlpha(50);
};
public WrapLayout(Context context, AttributeSet attrs) {

    super( context, attrs );
    setWillNotDraw(false);
}
public WrapLayout(Context context, AttributeSet attrs, int defStyle) {

    super( context, attrs, defStyle );
    setWillNotDraw(false);
}
public WrapLayout(Context context) {
    super(context);
    setWillNotDraw(false);
}
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    if(drawGlow)
        canvas.drawCircle(glowX, glowY, radius, paint);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    // TODO Auto-generated method stub
}
@Override
public boolean onTouchEvent(MotionEvent event){
    if(event.getAction() == MotionEvent.ACTION_DOWN){
        drawGlow = true;
    }else if(event.getAction() == MotionEvent.ACTION_UP)
        drawGlow = false;
    glowX = event.getX();
    glowY = event.getY();
    this.invalidate();
    return true;
}

}

然后我将 activity_main.xml 文件初始化为:

<com.example.secondcustomlayout.WrapLayout
.....
>
<Button
android:id="@+id/button1"
...
</Button>
</com.example.secondcustomlayout.WrapLayout>

MainActivity

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    }

结果:只有空白屏幕。

解决方案:我该怎么办?

关于

1 个答案:

答案 0 :(得分:0)

你覆盖onLayout,但你没有为孩子分配位置,这就是你什么也看不到的原因。如果您不想覆盖onLayout,则应使用(extends)框架提供的ViewGroup具体实现之一