Слишком низкая кнопка Android - PullRequest
1 голос
/ 09 марта 2019

Я делаю приложение для викторины на Android, и у меня возникла проблема с одним из моих макетов. Если текста слишком много (но текст помещается на кнопке), кнопка слишком мала.

Я не знаю, как это исправить, я пытался увеличить высоту кнопок, уменьшить размер, но это ничего не меняет. Можно ли исправить положение?

Вот мой макет:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:minHeight="30sp"
        android:progress="100"
        android:id="@+id/progressbar"
        android:progressTint="#2f9926"
        android:progressBackgroundTint="#636262"
        />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="15sp"
        android:layout_marginTop="10sp"
        android:textAlignment="textEnd"
        android:textSize="30sp"
        android:fontFamily="@font/caviardreamsbold"
        android:id="@+id/tv_no"/>

    <TextView
        android:layout_width="400sp"
        android:layout_marginTop="50sp"
        android:layout_marginBottom="40sp"
        android:textAlignment="center"
        android:textSize="40sp"
        android:fontFamily="@font/caviardreams"
        android:layout_gravity="center"
        android:layout_height="wrap_content"
        android:id="@+id/tv_question"
        />

    <ImageView
        android:layout_width="450sp"
        android:layout_height="200sp"
        android:layout_gravity="center"
        android:id="@+id/img"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="0sp"
        android:layout_weight="1"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginStart="20sp"
        android:layout_marginEnd="20sp"
        android:layout_marginBottom="20sp">

        <Button
            android:layout_height="160sp"
            android:layout_width="250sp"
            android:textAllCaps="false"
            android:background="@drawable/button_multiple"
            android:layout_marginEnd="15sp"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_weight="1"
            android:id="@+id/btn_one"/>

        <Button
            android:layout_height="160sp"
            android:layout_width="250sp"
            android:textAllCaps="false"
            android:background="@drawable/button_multiple"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_weight="1"
            android:id="@+id/btn_two"/>

    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginStart="20sp"
        android:layout_marginEnd="20sp"
        android:layout_marginBottom="30sp">

        <Button
            android:layout_height="160sp"
            android:layout_width="250sp"
            android:textAllCaps="false"
            android:background="@drawable/button_multiple"
            android:layout_marginEnd="15sp"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_weight="1"
            android:id="@+id/btn_three"/>

        <Button
            android:layout_height="160sp"
            android:layout_width="250sp"
            android:textAllCaps="false"
            android:background="@drawable/button_multiple"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:layout_weight="1"
            android:id="@+id/btn_four"/>

    </LinearLayout>

</LinearLayout>

А вот скриншот, потому что его сложно объяснить: https://image.noelshack.com/fichiers/2019/10/6/1552145596-screenshot-20190309-162509.jpg

Ответы [ 2 ]

1 голос
/ 09 марта 2019

Добавить

android:gravity="center"

к LinearLayouts

0 голосов
/ 09 марта 2019

Вы можете использовать эту библиотеку - размер текста в вашем представлении будет изменен в соответствии с объемом текста:

В вашем выпуске:

implementation 'me.grantland:autofittextview:0.2.1'

А теперь просто вставьте это в свой XML:

<me.grantland.widget.AutofitTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="12sp"
app:minTextSize="8sp" />

Редактировать - я заметил, что вы используете фиксированный размер в вашем представлениисначала используйте sp в качестве размера текста, а не размера vire, а во-вторых, не используйте фиксированные размеры в макете, поскольку макет просто не будет адаптивным, вместо этого используйте ConstraintLayout , например:

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Fragments.MenusDesign.BookMenu.BookMenu">


<ProgressBar
    android:id="@+id/progressbar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:layout_width="0dp"
    android:layout_height="29dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:minHeight="30sp"
    android:progress="100"
    android:progressBackgroundTint="#636262"
    android:progressTint="#2f9926"
    app:layout_constraintEnd_toStartOf="@+id/guideline6"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/tv_no"
    android:layout_width="0dp"
    android:layout_height="23dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:textAlignment="textEnd"
    android:textSize="30sp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="@+id/guideline6"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/tv_question"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:textAlignment="center"
    android:textSize="40sp"
    app:layout_constraintBottom_toTopOf="@+id/img"
    app:layout_constraintEnd_toEndOf="@+id/tv_no"
    app:layout_constraintStart_toEndOf="@+id/img"
    app:layout_constraintTop_toBottomOf="@+id/tv_no" />

<ImageView
    android:id="@+id/img"
    android:layout_width="329dp"
    android:layout_height="153dp"
    android:layout_gravity="center"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    app:layout_constraintBottom_toTopOf="@+id/btn_two"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />


<Button
    android:id="@+id/btn_one"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="152dp"
    android:layout_marginBottom="8dp"
    android:layout_weight="1"
    android:textAllCaps="false"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="@+id/btn_two"
    app:layout_constraintStart_toStartOf="@+id/btn_two"
    app:layout_constraintTop_toTopOf="@+id/btn_two" />

<Button
    android:id="@+id/btn_two"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="347dp"
    android:layout_marginEnd="8dp"
    android:layout_weight="1"
    android:textAllCaps="false"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    app:layout_constraintEnd_toStartOf="@+id/guideline6"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="@+id/img"
    app:layout_constraintTop_toTopOf="@+id/progressbar" />


<Button
    android:id="@+id/btn_three"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:textAllCaps="false"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    app:layout_constraintBottom_toBottomOf="@+id/btn_one"
    app:layout_constraintEnd_toEndOf="@+id/btn_four"
    app:layout_constraintStart_toStartOf="@+id/btn_four"
    app:layout_constraintTop_toTopOf="@+id/btn_one" />

<Button
    android:id="@+id/btn_four"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginEnd="8dp"
    android:layout_weight="1"
    android:textAllCaps="false"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    app:layout_constraintBottom_toBottomOf="@+id/btn_two"
    app:layout_constraintEnd_toEndOf="@+id/img"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="@+id/guideline6"
    app:layout_constraintTop_toTopOf="@+id/btn_two"
    app:layout_constraintVertical_bias="1.0" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.5" />

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...