如何使按钮居中,其宽度是容器的百分比?

时间:2018-01-02 17:15:23

标签: android android-layout button center

我正在Android Studio中制作应用程序,我需要一个按钮才能显示在手机屏幕的中央。

我见过很多关于如何将按钮居中的例子,但除此之外,一旦它位于中心,按钮的宽度必须是屏幕宽度的60%。

欢迎任何想法,建议或例子。

由于

2 个答案:

答案 0 :(得分:3)

@ MishaAkopov的答案很好,但我将使用线性布局提供单独的解决方案。

通过将布局的权重设置为10并将按钮的权重设置为6,按钮将是布局宽度的60%。此外,您需要将LinearLayout的重力设置为center或center_horizo​​ntal以确保按钮居中。

<LinearLayout
          android:orientation="horizontal"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:gravity="center_horizontal"
          android:weightSum="10">

     <Button
         android:layout_width="0dp"
         android:layout_height="40dp"
         android:layout_weight="6"
         android:text="My Button"/>

</LinearLayout>

答案 1 :(得分:2)

您应该尝试ConstraintLayout。它的作用是从左侧(20%)和右侧(80%)添加两个Guidlines,并将按钮的左右限制设置为这些指导:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toStartOf="@+id/guideline2"
        app:layout_constraintStart_toStartOf="@+id/guideline" />

    <android.support.constraint.Guideline
        android:id="@+id/guideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.2" />

    <android.support.constraint.Guideline
        android:id="@+id/guideline2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.8" />

</android.support.constraint.ConstraintLayout>

enter image description here