安卓浮动按钮未显示

4

我将尝试使用canvas制作绘图页面,并在角落添加浮动按钮以执行一些操作。但是它并没有显示出来。

以下是我的类

DrawView.java

public class DrawView extends View implements View.OnTouchListener {
private List<Point> points = new ArrayList<>();
private Paint paint = new Paint();

public DrawView(Context c) {
    super(c);
    setFocusable(true);
    setFocusableInTouchMode(true);
    this.setOnTouchListener(this);
    paint.setColor(Color.BLACK);
}

@Override
public void onDraw(Canvas canvas) {
    for (Point point : points) {
        canvas.drawCircle(point.x, point.y, 30, paint);
    }
}

public boolean onTouch(View view, MotionEvent event) {
    Point point = new Point();
    point.x = event.getX();
    point.y = event.getY();
    points.add(point);
    invalidate();
    return true;
}}

和主活动

public class DrawingPage extends AppCompatActivity {
private DrawView drawView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_drawing_page);
    drawView = new DrawView(getApplicationContext());
    drawView.setBackgroundColor(Color.WHITE);
    setContentView(drawView);
    drawView.requestFocus();
}}

XML

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="reminder.com.picsartdrawing.DrawingPage">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/myFAB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"
        app:elevation="4dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>

浮动按钮没有出现,有什么解决办法吗? 截图 编辑!!! 在Activity的onCreate方法中,我已经更改了这个,并且现在我有了带有按钮的绘图画布页面。
RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
        drawView = new DrawView(getApplicationContext());
        drawView.setBackgroundColor(Color.WHITE);
        drawView.requestFocus();
        assert layout != null;
        layout.addView(drawView);

这是整个布局吗? - erluxman
在协调布局中使用浮动操作按钮。 - bryan c
2个回答

4
onCreate()中,你用setContentView()两次替换了“main”视图,所以尝试只使用一次:
setContentView(R.layout.activity_drawing_page);

1

您需要在活动类的onCreate方法中添加以下内容:

FloatingActionButton fab = (FloatingActionButton) findViewById (R.id.fab);
        fab.setOnClickListener (new View.OnClickListener () {
            @Override
            public void onClick (View view) {
                Snackbar.make (view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction ("Action", null).show ();
            }
        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接