如何将布局内容强制移出屏幕

时间:2018-08-20 13:12:52

标签: android xml layout

我要重新创建此布局:

enter image description here

我设法做到了,但是布局也可以更改为:

enter image description here

将部分内容强制移出屏幕。

要进行更改,我将使隐藏的布局可见,该布局与按下某个按钮并消失时显示的额外布局相对应。

这就是我做的:

enter image description here

可见多余内容时的结果:

enter image description here

这是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:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="120dp"
            android:layout_marginBottom="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:orientation="horizontal"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.02">

            <LinearLayout
                android:id="@+id/edit_holder"
                android:layout_width="325dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:baselineAligned="false"
                android:orientation="horizontal"
                android:visibility="visible"
                android:weightSum="2">

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="10dp"
                    android:layout_marginTop="50dp"
                    android:layout_weight="1"
                    android:background="@drawable/del_border"
                    android:gravity="center"
                    android:orientation="horizontal">

                    <ImageView
                        android:id="@+id/del_item"
                        android:layout_width="20dp"
                        android:layout_height="20dp"
                        android:layout_weight="1"
                        app:srcCompat="@drawable/ic_clear_bege_20dp" />

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/spinner_holder"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:orientation="horizontal">

                    <LinearLayout
                        android:id="@+id/spinner_border"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:background="@drawable/spinner"
                        android:orientation="horizontal">

                        <Spinner
                            android:id="@+id/spinner_edit"
                            android:layout_width="30dp"
                            android:layout_height="40dp"
                            android:layout_weight="1" />
                    </LinearLayout>
                </LinearLayout>

            </LinearLayout>

            <ImageView
                android:id="@+id/img"
                android:layout_width="239dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:foreground="@drawable/rounded_corners"
                android:scaleType="fitXY"
                app:srcCompat="@mipmap/ic_launcher"
                tools:ignore="ContentDescription" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/nome_prod"
                    android:layout_width="165dp"
                    android:layout_height="32dp"
                    android:layout_marginStart="5dp"
                    android:text="TextView"
                    android:textColor="@color/preto_escuro" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="25dp"
                    android:orientation="horizontal"
                    android:weightSum="3">

                    <TextView
                        android:id="@+id/tam_txt"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginStart="5dp"
                        android:layout_weight="1"
                        android:text="@string/tamanho"
                        android:textColor="@color/por_usar" />

                    <TextView
                        android:id="@+id/tam_val"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:text="TextView"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/preco_ant"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginEnd="5dp"
                        android:layout_weight="1"
                        android:gravity="end"
                        android:text="TextView"
                        android:textColor="@color/fade" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:orientation="horizontal"
                    android:weightSum="4">

                    <TextView
                        android:id="@+id/cor_t"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginStart="5dp"
                        android:layout_weight="0.6"
                        android:text="@string/cor"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/cor"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="1.2"
                        android:text="TextView" />

                    <TextView
                        android:id="@+id/quanti"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:gravity="end"
                        android:text="X x" />

                    <TextView
                        android:id="@+id/preco_fin"
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_marginEnd="5dp"
                        android:layout_weight="1.2"
                        android:gravity="end"
                        android:text="TextView"
                        android:textColor="@color/bege" />
                </LinearLayout>

            </LinearLayout>

        </LinearLayout>

        <View
            android:id="@+id/line"
            android:layout_width="fill_parent"
            android:layout_height="1dp"
            android:background="@color/preto_escuro" />

    </LinearLayout>

</android.support.constraint.ConstraintLayout>

注意:请忽略图像的不同形状,与问题无关。

为了更清楚一点,我只想知道当隐藏的布局可见时,如何才能“弹出屏幕”部分内容。我不要任何滑动效果。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用需要添加的滑动库之一

dependencies {
    compile 'com.android.support:recyclerview-v7:21.0.0'
    compile 'com.android.support:support-v4:20.+'
    compile "com.daimajia.swipelayout:library:1.2.0@aar"
}

,该名称位于XML的顶部

<com.daimajia.swipe.SwipeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="80dp"
    app:clickToClose="true"> 

有关更多信息,请查看此GitHub存储库

https://github.com/daimajia/AndroidSwipeLayout

答案 1 :(得分:0)

您可以为此设置动画,使用对象动画器编写动画功能,然后在需要时启动它! 像这样:

private void hideLayout(){
  float startX = yourLayout.getX();
  float endX = 0 - yourLayout.getX();
  ObjectAnimator anim
         = ObjectAnimator.ofFlot(yourLayout,view.X.startX,endX);
  anim.setDuration(500);
  anim.start();
}