[JAVA] [Memorandum für Anfänger] Story beim Drehen von TextView und Button mit Text

Wenn Sie Text zeichnen möchten, der vertikal um 90 Grad gedreht ist, sollten Sie darüber nachdenken, diesen vorerst mit Drehung zu schreiben.

rotation_bad.xml


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/sampleTextView"
    android:text="@string/sampleText"
    android:rotation="90"
    android:gravity="center" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/sampleButton"
    android:text="@string/sampleText"
    android:rotation="90"
    android:gravity="center" />

Sobald ich es starte, weiß ich es, aber es funktioniert nicht wie erwartet. Nach dem Definieren der Größe der Ansicht mit layout_width und layout_height wird die Drehung nur für den zugrunde liegenden Text durchgeführt. Es gab so etwas wie das Erben der Klasse für vertikales Schreiben und deren Neuerstellung, aber vorerst ist dies eine der einfachen Lösungen.

Sie können ConstraintLayout verwenden, um die Textansicht an eine gute Position zu bringen.

rotation_good.xml


<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Space
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/textSpace" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        app:layout_constraintDimensionRatio="1:1"
        android:id="@+id/sampleTextView"
        android:text="@string/sampleText"
        android:rotation="90"
        android:gravity="center"
        app:layout_constraintTop_toTopOf="@+id/textSpace"
        app:layout_constraintBottom_toBottomOf="@+id/textSpace"
        app:layout_constraintStart_toStartOf="@+id/textSpace"
        app:layout_constraintEnd_toEndOf="@+id/textSpace"
        android:translationZ="10dp" />

</android.support.constraint.ConstraintLayout>

Nachdem Sie nur den Platz in der Ansicht unten gesichert haben, ignorieren Sie ihn und bedecken Sie ihn mit einer neuen Textansicht von oben. Der Punkt ist, dass wenn es sich um eine quadratische Ansicht handelt, es kein Problem gibt, selbst wenn sie gedreht wird, und wenn sie zentriert ist, funktioniert dies. Es ist möglich, die Position der Textansicht zu verschieben, die die Ausrichtung nach links und rechts abdeckt. Dies kann auch mit der Schaltfläche erfolgen, wenn der Raumteil eine Schaltfläche ist. Der Grund, warum translationZ auf einen positiven Wert gesetzt ist, besteht darin, dass abhängig von der Art der unten platzierten Ansicht die Textansicht abgedeckt wird und der Text nicht angezeigt wird.

Es wäre einfacher, eine Klasse zu erstellen und eine rotierende Textansicht zu implementieren. Denken wir also darüber nach, wenn wir Zeit haben.

Recommended Posts

[Memorandum für Anfänger] Story beim Drehen von TextView und Button mit Text
Ändern Sie das Layout beim Drehen mit onConfigurationChanged