2016-04-08 13 views
4

Ich versuche, Zeichnung Seite mit Leinwand und fügen Sie schwebende Schaltfläche in der Ecke für einige Aktionen. Aber es erscheint nicht. Dies ist meine KlassenAndroid Floating Button wird nicht angezeigt

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

Und Haupttätigkeit

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> 

Aber Floating-Taste nicht angezeigt, keine Lösungen? Screenshot

BEARBEITEN !!! in der onCreate-Methode von Activity Ich habe dies geändert, und jetzt habe ich Zeichnungsseite mit Schaltfläche.

RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout); 
     drawView = new DrawView(getApplicationContext()); 
     drawView.setBackgroundColor(Color.WHITE); 
     drawView.requestFocus(); 
     assert layout != null; 
     layout.addView(drawView); 
+0

ist das das gesamte Layout? – erluxman

+0

Verwenden Sie Floating-Aktion Schaltfläche in Koordinatorlayout –

Antwort

4

In onCreate() ersetzen Sie 2 mal mit setContentView() dem "main" -Ansicht, so versuchen, mit nur so viel:

setContentView(R.layout.activity_drawing_page); 
+1

thx es half, Ich habe dies zu Code hinzugefügt –

1

Sie müssen dies in der onCreate Methode Ihrer Aktivitätsklasse hinzuzufügen:

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