Как сохранить один макет над другим макетом в Android - PullRequest
0 голосов
/ 15 ноября 2018

Это мой xml. Я хочу сохранить один макет поверх другого макета.

У меня есть индикатор выполнения и попробуйте снова. Textview там же, где я делаю видимые и невидимые Textview и Progressbar программно, поэтому я хочу сохранить ProgressbarНажмите кнопку «повторить попытку», но я не могу этого сделать.

Я искал в Google, что мы можем использовать макет фрейма, но он не работает.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/tesco_blue"
    android:paddingBottom="@dimen/margin_18"
    android:paddingLeft="@dimen/margin_18"
    android:paddingRight="@dimen/margin_12"
    android:orientation="vertical"
    android:paddingTop="@dimen/margin_18">
    <LinearLayout
        android:id="@+id/securebarcode_error_layout_variant_a"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical"
        android:layout_marginLeft="@dimen/margin_56"
        android:layout_marginRight="@dimen/margin_56"
        android:visibility="visible"
        tools:visibility="visible">

        <android.support.v4.widget.Space
            android:layout_width="match_parent"
            android:layout_height="@dimen/margin_40" />

        <TextView
            android:id="@+id/errortitle"
            style="@style/Typeface.Body.Bold.White"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="@android:color/transparent"
            android:gravity="center"
            android:lineSpacingExtra="4sp"
            tools:text="@string/pwp_network_error" />


        <TextView
            android:id="@+id/errordesc"
            style="@style/Typeface.Body.White"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center"
            android:layout_marginTop="@dimen/margin_12"
            android:lineSpacingExtra="8sp"
            tools:text="@string/pwp_network_error_description" />
        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_gravity="center"
            >
        <ProgressBar
            android:id="@+id/pwp_progressbarlayout_variant_a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"


            android:visibility="visible"
            android:paddingLeft="@dimen/cl_48"
            android:paddingRight="@dimen/cl_48"
            android:paddingTop="@dimen/padding_12"
            android:paddingBottom="@dimen/padding_12"
            android:indeterminateDrawable="@drawable/custom_progress_bar"/>
        </FrameLayout>

        <TextView
            android:id="@+id/try_again"
            style="@style/Typeface.Body.Bold.HighlightBlue"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/error_button_background"
            android:gravity="center"
            android:paddingLeft="@dimen/cl_48"
            android:paddingRight="@dimen/cl_48"
            android:paddingTop="@dimen/padding_12"
            android:paddingBottom="@dimen/padding_12"
            android:text="@string/Tryagain"
            android:textColor="@color/fdv_pending_state_color" />


        <android.support.v4.widget.Space
            android:layout_width="match_parent"
            android:layout_height="@dimen/margin_40" />


    </LinearLayout>
</LinearLayout>

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018
  1. Вы можете просто использовать макет ограничения в вашем случае, так как в основном это из семейства макетов фреймов вы можете реализовать приведенный ниже код. Просто возьмите ваш корневой макет как ConstraintLayout

    <TextView
        android:id="@+id/try_again"
        style="@style/Typeface.Body.Bold.HighlightBlue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        android:background="@drawable/error_button_background"
        android:gravity="center"
        android:paddingLeft="@dimen/cl_48"
        android:paddingRight="@dimen/cl_48"
        android:paddingTop="@dimen/padding_12"
        android:paddingBottom="@dimen/padding_12"
        android:text="@string/Tryagain"
        android:textColor="@color/fdv_pending_state_color" />
    
    <ProgressBar
        android:id="@+id/pwp_progressbarlayout_variant_a"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="@id/try_again"
        app:layout_constraintBottom_toBottomOf="@id/try_again"
        app:layout_constraintLeft_toLeftOf="@id/try_again"
        app:layout_constraintRight_toRightOf="@id/try_again"
        android:visibility="visible"
        android:paddingLeft="@dimen/cl_48"
        android:paddingRight="@dimen/cl_48"
        android:paddingTop="@dimen/padding_12"
        android:paddingBottom="@dimen/padding_12"
        android:indeterminateDrawable="@drawable/custom_progress_bar"/>
    

0 голосов
/ 15 ноября 2018

Вы должны переместить try_again TextView внутрь FrameLayout, чтобы ваш индикатор прогресса отображался в TextView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/tesco_blue"
android:orientation="vertical"
android:paddingLeft="@dimen/margin_18"
android:paddingTop="@dimen/margin_18"
android:paddingRight="@dimen/margin_12"
android:paddingBottom="@dimen/margin_18">

<LinearLayout
    android:id="@+id/securebarcode_error_layout_variant_a"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginLeft="@dimen/margin_56"
    android:layout_marginRight="@dimen/margin_56"
    android:orientation="vertical"
    android:visibility="visible"
    tools:visibility="visible">

    <android.support.v4.widget.Space
        android:layout_width="match_parent"
        android:layout_height="@dimen/margin_40" />

    <TextView
        android:id="@+id/errortitle"
        style="@style/Typeface.Body.Bold.White"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:background="@android:color/transparent"
        android:gravity="center"
        android:lineSpacingExtra="4sp"
        tools:text="@string/pwp_network_error" />


    <TextView
        android:id="@+id/errordesc"
        style="@style/Typeface.Body.White"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="@dimen/margin_12"
        android:gravity="center"
        android:lineSpacingExtra="8sp"
        tools:text="@string/pwp_network_error_description" />

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center">

        <ProgressBar
            android:id="@+id/pwp_progressbarlayout_variant_a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:indeterminateDrawable="@drawable/custom_progress_bar"
            android:paddingLeft="@dimen/cl_48"
            android:paddingTop="@dimen/padding_12"
            android:paddingRight="@dimen/cl_48"
            android:paddingBottom="@dimen/padding_12"
            android:visibility="visible" />


        <TextView
            android:id="@+id/try_again"
            style="@style/Typeface.Body.Bold.HighlightBlue"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@drawable/error_button_background"
            android:gravity="center"
            android:paddingLeft="@dimen/cl_48"
            android:paddingTop="@dimen/padding_12"
            android:paddingRight="@dimen/cl_48"
            android:paddingBottom="@dimen/padding_12"
            android:text="@string/Tryagain"
            android:textColor="@color/fdv_pending_state_color" />
    </FrameLayout>


    <android.support.v4.widget.Space
        android:layout_width="match_parent"
        android:layout_height="@dimen/margin_40" />

Вот изображение, которое вы хотите.

enter image description here

0 голосов
/ 15 ноября 2018

Обновите свой макет, как показано ниже - Relative Layout может добиться цели

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/tesco_blue"
    android:paddingBottom="@dimen/margin_18"
    android:paddingLeft="@dimen/margin_18"
    android:paddingRight="@dimen/margin_12"
    android:orientation="vertical"
    android:paddingTop="@dimen/margin_18">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <LinearLayout
            android:id="@+id/securebarcode_error_layout_variant_a"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="vertical"
            android:layout_marginLeft="@dimen/margin_56"
            android:layout_marginRight="@dimen/margin_56"
            android:visibility="visible"
            tools:visibility="visible">

            <android.support.v4.widget.Space
                android:layout_width="match_parent"
                android:layout_height="@dimen/margin_40" />

            <TextView
                android:id="@+id/errortitle"
                style="@style/Typeface.Body.Bold.White"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:background="@android:color/transparent"
                android:gravity="center"
                android:lineSpacingExtra="4sp"
                tools:text="@string/pwp_network_error" />


            <TextView
                android:id="@+id/errordesc"
                style="@style/Typeface.Body.White"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:gravity="center"
                android:layout_marginTop="@dimen/margin_12"
                android:lineSpacingExtra="8sp"
                tools:text="@string/pwp_network_error_description" />


            <TextView
                android:id="@+id/try_again"
                style="@style/Typeface.Body.Bold.HighlightBlue"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/error_button_background"
                android:gravity="center"
                android:paddingLeft="@dimen/cl_48"
                android:paddingRight="@dimen/cl_48"
                android:paddingTop="@dimen/padding_12"
                android:paddingBottom="@dimen/padding_12"
                android:text="@string/Tryagain"
                android:textColor="@color/fdv_pending_state_color" />


            <android.support.v4.widget.Space
                android:layout_width="match_parent"
                android:layout_height="@dimen/margin_40" />


        </LinearLayout>

            <ProgressBar
                android:id="@+id/pwp_progressbarlayout_variant_a"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_centerInParent="true"
                android:visibility="visible"
                android:indeterminateDrawable="@drawable/custom_progress_bar"/>


    </RelativeLayout>

</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...