При открытии клавиатуры перемещайте один конкретный вид вверх, а не весь макет - PullRequest
0 голосов
/ 19 февраля 2020

Мне нужна такая функциональность, как Facebook, когда мы создаем любую публикацию с изображением на ней, только они имеют sh одну полосу сверху изображения, а не весь макет. В моем случае я использую NestedScrollView в качестве родителя с дочерним ConstraintLayout, и панель разработана в линейном макете.

Это мое приложение:

enter image description here

Я хочу что-то вроде этого:

enter image description here

Это мой XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView 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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:fillViewport="true">


<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white">


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


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

    <androidx.appcompat.widget.AppCompatImageView
        android:id="@+id/select_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="@dimen/dimen_15dp"
        android:clickable="true"
        android:clipChildren="false"
        android:focusable="true"
        android:foreground="@drawable/ripple"
        android:paddingTop="@dimen/dimen_5dp"
        android:paddingEnd="@dimen/dimen_5dp"
        android:paddingBottom="@dimen/dimen_5dp"
        android:src="@drawable/left_arrow"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.00"
        app:layout_constraintStart_toStartOf="@id/guideline1"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.00" />

    <androidx.appcompat.widget.AppCompatTextView

        android:id="@+id/back_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginStart="8dp"
        android:layout_marginTop="@dimen/dimen_15dp"
        android:clickable="true"
        android:focusable="true"
        android:fontFamily="@font/opensans_bold"
        android:paddingTop="@dimen/dimen_5dp"
        android:paddingEnd="@dimen/dimen_5dp"
        android:paddingBottom="@dimen/dimen_5dp"
        android:text="@string/new_post"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="@dimen/dimen_16sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toEndOf="@+id/select_back"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.00" />


    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/postTextview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="@dimen/dimen_15dp"
        android:clickable="true"
        android:focusable="true"
        android:fontFamily="@font/roboto_regular"
        android:foreground="?android:selectableItemBackground"
        android:paddingStart="@dimen/dimen_5dp"
        android:paddingTop="@dimen/dimen_5dp"
        android:paddingBottom="@dimen/dimen_5dp"
        android:text="@string/post"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="@dimen/dimen_16sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/guideline2"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toEndOf="@+id/back_title"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.00" />

    <View
        android:id="@+id/line"
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:layout_marginTop="12dp"
        android:background="@color/grey_text"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/select_back"
        app:layout_constraintVertical_bias="0.0" />


    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/profile_image"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:layout_marginStart="8dp"
        android:layout_marginTop="12dp"
        android:src="@drawable/rock"
        app:civ_border_color="@color/white"
        app:civ_border_width="2dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/line" />

    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/dimen_10dp"
        android:layout_marginTop="20dp"
        android:clickable="true"
        android:focusable="true"
        android:fontFamily="@font/opensans_bold"
        android:text="Dwayne johnson"
        android:textColor="@color/textview_black"
        android:textSize="@dimen/dimen_14sp"
        android:textStyle="bold"
        app:layout_constraintStart_toEndOf="@+id/profile_image"
        app:layout_constraintTop_toBottomOf="@+id/line" />


    <com.skyfishjy.library.RippleBackground
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:layout_marginEnd="44dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/line"
        app:rb_color="#29B6F6"
        app:rb_duration="2000"
        app:rb_radius="5dp"
        app:rb_rippleAmount="3"
        app:rb_scale="4">

        <ImageView
            android:id="@+id/world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:contentDescription="TODO"
            android:padding="10dp"
            android:src="@drawable/world" />

    </com.skyfishjy.library.RippleBackground>


    <androidx.appcompat.widget.AppCompatImageView
        android:id="@+id/down_arrow"
        android:layout_width="0dp"
        android:layout_height="30dp"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:layout_marginTop="16dp"
        android:foreground="?attr/selectableItemBackground"
        android:padding="10dp"
        android:src="@drawable/ic_arrow_down_sign_to_navigate"
        app:layout_constraintStart_toEndOf="@+id/content"
        app:layout_constraintTop_toBottomOf="@+id/line" />


    <View
        android:id="@+id/view"
        android:layout_width="match_parent"
        android:layout_height="8dp"
        android:layout_below="@+id/rel"
        android:layout_marginTop="8dp"
        android:background="#DCDCDC"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/profile_image" />


    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/category1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="12dp"
        android:background="@drawable/button_background"
        android:clickable="true"
        android:focusable="true"
        android:fontFamily="sans-serif"
        android:foreground="?android:selectableItemBackground"
        android:padding="5dp"
        android:text="@string/personal"
        android:textAllCaps="false"
        android:textColor="@color/white"
        android:textSize="10sp"
        android:textStyle="normal"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/view"
        app:textAllCaps="false" />


    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/category2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="12dp"
        android:background="@drawable/post_btn_bg"
        android:clickable="true"
        android:focusable="true"
        android:fontFamily="sans-serif"
        android:foreground="?android:selectableItemBackground"
        android:padding="5dp"
        android:text="@string/awareness"
        android:textAllCaps="false"
        android:textColor="@color/colorPrimary"
        android:textSize="10sp"
        android:textStyle="normal"
        app:layout_constraintStart_toEndOf="@+id/category1"
        app:layout_constraintTop_toBottomOf="@+id/view"
        app:textAllCaps="false" />


    <androidx.appcompat.widget.AppCompatTextView
        android:id="@+id/category3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="12dp"
        android:background="@drawable/post_btn_bg"
        android:clickable="true"
        android:focusable="true"
        android:fontFamily="sans-serif"
        android:foreground="?android:selectableItemBackground"
        android:padding="5dp"
        android:text="@string/scheme"
        android:textAllCaps="false"
        android:textColor="@color/colorPrimary"
        android:textSize="10sp"
        android:textStyle="normal"
        app:layout_constraintStart_toEndOf="@+id/category2"
        app:layout_constraintTop_toBottomOf="@+id/view"
        app:textAllCaps="false" />


    <View
        android:id="@+id/line1"
        android:layout_width="match_parent"
        android:layout_height="0.4dp"
        android:layout_marginTop="8dp"
        android:background="@color/grey_text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/category3" />


    <androidx.appcompat.widget.AppCompatEditText
        android:id="@+id/write_post"
        android:layout_width="match_parent"
        android:layout_height="@dimen/dimen_100dp"
        android:layout_below="@+id/line1"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:background="@drawable/post_edit_text_bg"
        android:fontFamily="@font/roboto_regular"
        android:gravity="start"
        android:hint="What's on your mind..."
        android:inputType="textMultiLine"
        android:textColor="@color/textview_black"
        android:textColorHint="@color/grey2_text"
        android:textCursorDrawable="@drawable/cursor_color"
        android:textSize="@dimen/dimen_16dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/line1" />


    <androidx.appcompat.widget.AppCompatImageView
        android:id="@+id/timelineImage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:visibility="gone"
        android:layout_marginBottom="@dimen/dimen_20dp"
        app:layout_constraintBottom_toTopOf="@+id/linearLayout2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/write_post">


    </androidx.appcompat.widget.AppCompatImageView>

    <VideoView
        android:id="@+id/timelineVideo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
        app:layout_constraintBottom_toTopOf="@+id/linearLayout2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        android:layout_marginBottom="@dimen/dimen_20dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/write_post"
        app:layout_constraintVertical_bias="0.072">

    </VideoView>

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="8dp"
        android:background="@drawable/item_bg"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/camera"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:foreground="?android:selectableItemBackground"
            android:padding="10dp"
            android:src="@drawable/ic_camera" />

        <androidx.appcompat.widget.AppCompatImageView
            android:id="@+id/gallery"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:foreground="?android:selectableItemBackground"
            android:padding="10dp"
            android:src="@drawable/gallery" />

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.core.widget.NestedScrollView> 

Пробовал все в манифест

android:windowSoftInputMode="adjustPan"
android:windowSoftInputMode="adjustResize" 
android:windowSoftInputMode="adjustNothing" 

но ничего не получалось. Все подталкивают весь мой макет вверх.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

добавьте это в свой файл meniFest рядом с тегом активности

android:windowSoftInputMode="adjustResize"

и поместите scrollView в качестве родительского макета в файл xml

0 голосов
/ 19 февраля 2020

Я думаю, это потому, что вы используете NestedScrollView в качестве родительской проверки, заменив NestedScrollView любым другим макетом

...