首页 > 解决方案 > 如何减少android studio中的布局大小?

问题描述

我正在做一个活动,它应该很小,但我不知道如何将活动放在小尺寸以免占据整个屏幕,好像它是一种中间的警报/弹出窗口并具有适合所有屏幕尺寸的响应式布局。

我的活动:

<?xml version="1.0" encoding="utf-8"?>
<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/layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/go_back"
    tools:context=".Popup">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="4dp"
        android:background="@drawable/border_et"
        android:gravity="center"
        android:text="@string/authorize"
        android:textColor="@color/common_google_signin_btn_text_dark_default"
        android:textSize="20sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.476"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/btnCancel"
        android:layout_width="122dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView3"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginEnd="44dp"
        android:layout_marginRight="44dp"
        android:background="@drawable/buttons"
        android:text="@android:string/cancel"
        android:textColor="@android:color/holo_red_light"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.934"
        app:layout_constraintStart_toEndOf="@+id/btnOkay"
        app:layout_constraintTop_toTopOf="@+id/btnOkay" />

    <EditText
        android:id="@+id/etPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="28dp"
        android:layout_marginRight="28dp"
        android:ems="10"
        android:hint="@string/enter_pass"
        android:importantForAutofill="no"
        android:inputType="textPassword"
        android:textColor="@color/common_google_signin_btn_text_dark_default"
        android:textColorHighlight="@color/common_google_signin_btn_text_dark_default"
        android:textColorHint="@color/common_google_signin_btn_text_dark_default"
        android:textColorLink="@color/common_google_signin_btn_text_dark_default"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toEndOf="@+id/textView3"
        app:layout_constraintTop_toTopOf="@+id/textView3" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="109dp"
        android:layout_height="44dp"
        android:layout_below="@+id/textView2"
        android:layout_alignParentStart="true"
        android:layout_alignParentLeft="true"
        android:layout_marginStart="28dp"
        android:layout_marginLeft="28dp"
        android:layout_marginTop="32dp"
        android:gravity="center"
        android:text="@string/password"
        android:textColor="@color/common_google_signin_btn_text_dark_default"
        android:textSize="18sp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView2" />

    <Button
        android:id="@+id/btnOkay"
        android:layout_width="122dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/etPassword"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="44dp"
        android:layout_marginLeft="44dp"
        android:layout_marginTop="48dp"
        android:layout_toEndOf="@+id/btnCancel"
        android:layout_toRightOf="@+id/btnCancel"
        android:background="@drawable/buttons"
        android:text="@string/confirm"
        android:textColor="@android:color/holo_green_light"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView3" />

</androidx.constraintlayout.widget.ConstraintLayout>

我尝试更改layout_widthand layout_height,但它不适用于所有尺寸的屏幕,我尝试过getWindow().setLayout((int)(width*.9), (int)(height*.4))但在平板电脑中窗口似乎很大......

有人可以帮忙吗?

标签: androidandroid-studiolayout

解决方案


如果你想用中心的小对话框提醒用户......

首先创建一个布局

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:background="@android:color/transparent">

然后在创建子布局之后

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

试试这个..希望这会帮助你..快乐编码。


推荐阅读