我正在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
答案 0 :(得分:1)
添加
android:gravity="center"
到LinearLayouts
答案 1 :(得分:0)
您可以使用this library-它将使视图上的文本根据文本量调整大小:
祝贺您
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" />