Android floating button not showing

I am trying to make a drawing page with a canvas and add floating buttons in the corner for some actions. But he does not appear. These are my classes.

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;
}}

And main activity

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>

But the floating button does not appear, any solutions? Screenshot

CHANGE !!! in the Activity onCreate method I changed this and now I have a canvas page with a button.

RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);
        drawView = new DrawView(getApplicationContext());
        drawView.setBackgroundColor(Color.WHITE);
        drawView.requestFocus();
        assert layout != null;
        layout.addView(drawView);
+4
source share
2 answers

In onCreate()you replace 2 times with the setContentView()"main" view, so try only this:

setContentView(R.layout.activity_drawing_page);
+4
source

You need to add this to the onCreate method of your activity class:

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 ();
            }
        });
+1

All Articles