Изменить ширину и высоту объекта без жесткого кодирования значений XML - PullRequest
0 голосов
/ 26 апреля 2019

Я создаю домашнюю страницу для своего приложения для Android в Android Studios. В папке раскладок у меня есть XML-файл активности домашней страницы. Домашняя страница будет содержать 3 кликабельных «прямоугольника», которые являются CardViews. Они работают правильно, но Я работаю над изменением размеров CardViews без жесткого кодирования ширины и высоты XML (или других объектов в будущем). Так что размеры меняются в зависимости от размера экрана. В этом конкретном случае я хочу увеличить высоту CardViews.

Получение квитанции и создание карт-счетов счетов-фактур. Я хочу изменить размер.

Я использую линейный макет внутри макета ограничения. CardViews layout_width и layout_height выбираются в соответствии с родителем. Я изменил layout_weight, но это не дает результат, который я ищу. Я хочу увеличить высоту без увеличения ширины.

Это нужно сделать в XML или в части кода Java?

Вот XML-код активности моей домашней страницы (без нижней навигационной панели и части «Добавить элемент»):

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".HomePageActivity">

   <LinearLayout
    android:id="@+id/ll"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/lightComplimentGrey"
    android:gravity="center|top"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="0dp">


        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="290dp"
        android:background="@drawable/curved_top"
        android:orientation="horizontal"
        android:paddingBottom="-50dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">


            <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintBottom_toTopOf="@+id/ll">

                <TextView
                android:id="@+id/currentUserTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:layout_marginEnd="188dp"
                android:layout_marginBottom="8dp"
                android:gravity="left"
                android:text="Current User"
                android:textColor="#99E8F3"
                android:textSize="20sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.922"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.352" />

                <TextView
                android:id="@+id/userNameEntryTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:layout_marginEnd="8dp"
                android:layout_marginBottom="8dp"
                android:gravity="left"
                android:hint="Not Signed In"
                android:textColor="#FFFFFF"
                android:textColorHint="#FFFFFF"
                android:textSize="24sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="@+id/currentUser"
                app:layout_constraintTop_toTopOf="parent" />

                <Spinner
                android:id="@+id/changeUserSpinner"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="8dp"
                android:backgroundTint="#FFFFFF"
                app:layout_constraintBottom_toBottomOf="@+id/
                app:layout_constraintStart_toEndOf="@+id/userNameEntry"
                app:layout_constraintTop_toTopOf="@+id/currentUserTextView"
                app:layout_constraintVertical_bias="0.558" />

                <ImageButton
                android:id="@+id/menuButton"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="16dp"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:layout_weight="4"
                android:background="@drawable/ic_menu_light_blue_24dp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.048" />

                <ImageButton
                android:id="@+id/notificationButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginStart="8dp"
                android:layout_marginTop="16dp"
                android:layout_marginEnd="16dp"
                android:layout_marginBottom="
                android:background="@drawable/ic_tooLongToPost"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="1.0"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.0" />

            </android.support.constraint.ConstraintLayout>
        </LinearLayout>

        <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="-70dp"
        android:clipToPadding="false"
        android:gravity="center"
        android:orientation="horizontal">


            <android.support.v7.widget.CardView
            android:id="@+id/capture_receipt"
            android:layout_width="0px"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_margin="@dimen/view_margin_normal_screen"
            android:clickable="true"
            android:foreground="?android:attr/selectableItemBackground">

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

                    <ImageView
                    android:layout_width="64dp"
                    android:layout_height="64dp"
                    android:background="@drawable/circle_background_green"
                    android:padding="10dp"
                    android:src="@drawable/ic_photo_camera_black_24dp" />

                    <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:text="Capture Receipt"
                    android:textStyle="bold" />

                    <View
                    android:layout_width="match_parent"
                    android:layout_height="1dp"
                    android:layout_margin="10dp"
                    android:background="@color/lightComplimentGrey" />

                    <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:padding="5dp"
                    android:text="Scan receipt to recognize items"
                    android:textColor="@android:color/darker_gray" />

                </LinearLayout>
            </android.support.v7.widget.CardView>

Как можно изменить высоту и ширину (точно так же, как если бы вы жестко программировали XML) без жесткого кодирования?

...