亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

利用Guideline實現ConstraintLayout中控件居中

標簽:
Android

背景

UI要求部分场景居中显示两个按钮,部分场景仅居中显示其中一个按钮,效果图如下:


webp

显示A和B两个操作


webp

仅显示A操作

实现方案

  1. activity_main.xml

<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout
        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"
        tools:context=".MainActivity">

    <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="0dp"
            android:layout_height="62dp"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"

            android:id="@+id/centerLayout"
            android:background="@color/colorPrimary">

        <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="156dp"
                android:layout_height="46dp"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:layout_marginStart="8dp"
                android:layout_marginEnd="8dp"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                android:background="@color/colorAccent"
                android:id="@+id/aLayout"
                app:layout_constraintEnd_toStartOf="@+id/guideline"
                >

            <TextView
                    android:text="操作A"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/textView"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:layout_marginEnd="8dp"
                    android:layout_marginRight="8dp"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginLeft="8dp"
                    android:layout_marginStart="8dp"
                    android:layout_marginBottom="8dp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    android:layout_marginTop="8dp"
                    app:layout_constraintTop_toTopOf="parent"/>
        </androidx.constraintlayout.widget.ConstraintLayout>

        <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="156dp"
                android:layout_height="46dp"
                android:layout_marginEnd="8dp"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                android:background="@color/colorAccent"
                android:id="@+id/bLayout"
                app:layout_constraintStart_toStartOf="@+id/guideline"
                android:layout_marginStart="8dp">

            <TextView
                    android:text="操作B"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/textView2"
                    app:layout_constraintStart_toStartOf="parent"
                    android:layout_marginLeft="8dp"
                    android:layout_marginStart="8dp"
                    app:layout_constraintEnd_toEndOf="parent"
                    android:layout_marginEnd="8dp"
                    android:layout_marginRight="8dp"
                    android:layout_marginTop="8dp"
                    app:layout_constraintTop_toTopOf="parent"
                    android:layout_marginBottom="8dp"
                    app:layout_constraintBottom_toBottomOf="parent"/>
        </androidx.constraintlayout.widget.ConstraintLayout>

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

    <Button
            android:text="隐藏B"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/hideBBtn"
            app:layout_constraintStart_toStartOf="parent"
            android:layout_marginLeft="8dp"
            android:layout_marginStart="8dp"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintEnd_toStartOf="@+id/showBBtn"
            android:layout_marginBottom="76dp"
            app:layout_constraintBottom_toBottomOf="parent"/>

    <Button
            android:text="显示B"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/showBBtn"
            app:layout_constraintBaseline_toBaselineOf="@+id/hideBBtn"
            app:layout_constraintEnd_toEndOf="parent"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            app:layout_constraintStart_toEndOf="@+id/hideBBtn"
            app:layout_constraintHorizontal_bias="0.5"/></androidx.constraintlayout.widget.ConstraintLayout>
  1. activity代码(Kotlin)

hideBBtn.setOnClickListener {
            bLayout.visibility = View.GONE
            guideline.setGuidelinePercent(1.0f)
        }
showBBtn.setOnClickListener {
            bLayout.visibility = View.VISIBLE
            guideline.setGuidelinePercent(0.5f)
        }



作者:程序园中猿
链接:https://www.jianshu.com/p/d1301d25cfee


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消