【问题标题】:ScrollView with alignparentbottom element带有 alignparentbottom 元素的 ScrollView
【发布时间】:2016-07-20 11:25:46
【问题描述】:

我想实现这样的布局

上面的内容是可滚动的,“提出报价”按钮将位于屏幕底部。但是每当用户开始输入时,它应该出现在键盘上方,以便于点击。 我经历过类似的回答,比如this。但这些解决方案不适用于我的情况。添加screencast 以显示布局的当前行为。

当前的xml代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="match_parent">

        <include layout="@layout/toolbar" />

        <ScrollView
            android:id="@+id/scroll"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/toolbar"
            android:layout_marginBottom="@dimen/padding_48dp">

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

                <android.support.v7.widget.CardView
                    android:id="@+id/firstcard"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="@dimen/padding_8dp"
                    android:layout_marginLeft="@dimen/padding_8dp"
                    android:layout_marginRight="@dimen/padding_8dp"
                    android:layout_marginTop="@dimen/padding_8dp"
                    app:cardCornerRadius="@dimen/padding_4dp">

                    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/padding_8dp"
                        android:layout_marginRight="@dimen/padding_8dp">

                        <RelativeLayout
                            android:id="@+id/insidecardone"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_margin="@dimen/padding_4dp">

                            <TextView
                                android:id="@+id/constant_value"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginTop="@dimen/padding_4dp"
                                android:text="Charge per day"
                                android:gravity="center"
                                android:textSize="@dimen/text_size_big_16" />


                            <EditText
                                android:id="@+id/tvRentPerday"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentEnd="true"
                                android:layout_alignParentRight="true"
                                android:hint="Rs.        "
                                android:gravity="center"

                                android:inputType="number"
                                android:maxLength="4"
                                android:textColor="@android:color/black"
                                android:textSize="@dimen/text_size_big_16" />
                        </RelativeLayout>

                        <RelativeLayout
                            android:id="@+id/insidecardtwo"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/insidecardone"
                            android:layout_margin="@dimen/padding_4dp">

                            <TextView
                                android:id="@+id/con_duration"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"

                                android:layout_marginTop="@dimen/padding_4dp"
                                android:text="Duration (Days)"
                                android:textSize="@dimen/text_size_big_16" />


                            <TextView
                                android:id="@+id/num_days"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentEnd="true"
                                android:layout_alignParentRight="true"
                                android:gravity="center_horizontal"
                                android:paddingEnd="@dimen/padding_16dp"
                                android:paddingRight="@dimen/padding_24dp"
                                android:text="10"
                                android:textSize="@dimen/text_size_big_16"

                                />




                        </RelativeLayout>


                        <RelativeLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_margin="@dimen/padding_4dp"
                            android:id="@+id/third_relative"
                            android:layout_below="@+id/insidecardtwo">

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:id="@+id/negotiable_text"

                                android:layout_marginTop="@dimen/padding_4dp"
                                android:textSize="@dimen/text_size_big_16"
                                android:text="Negotiable"/>

                            <Switch
                                android:id="@+id/negotiable"
                                android:layout_width="wrap_content"
                                android:showText="true"
                                android:textColor="@color/white"
                                android:layout_height="wrap_content"
                                android:layout_alignParentRight="true"/>

                        </RelativeLayout>
                        <View
                            android:layout_width="match_parent"
                            android:layout_height="1dp"
                            android:layout_below="@+id/third_relative"
                            android:layout_margin="@dimen/padding_8dp"
                            android:background="@color/grey_lighter" />

                        <RelativeLayout
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/third_relative"
                            android:layout_margin="@dimen/padding_4dp"
                            android:paddingBottom="@dimen/padding_8dp"
                            android:paddingTop="@dimen/padding_24dp">

                            <TextView
                                android:id="@+id/total_constant"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"
                                android:layout_alignParentStart="true"
                                android:layout_marginTop="@dimen/padding_4dp"
                                android:gravity="center_vertical"
                                android:text="Total Amount"
                                android:textSize="@dimen/text_size_big_16" />

                            <TextView
                                android:id="@+id/tvAmount"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentEnd="true"
                                android:layout_alignParentRight="true"
                                android:gravity="center_vertical"

                                android:textColor="#ff4f00"
                                android:textSize="@dimen/text_size_big_16"
                                android:textStyle="bold" />

                            <TextView
                                android:id="@+id/total_constant_mutterfly"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"
                                android:layout_alignParentStart="true"
                                android:layout_below="@+id/total_constant"
                                android:paddingTop="@dimen/padding_4dp"
                                android:text="@string/process_fee_text"
                                android:textColor="@android:color/darker_gray"
                                android:textSize="8sp" />
                        </RelativeLayout>

                    </RelativeLayout>

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

                <android.support.v7.widget.CardView
                    android:id="@+id/middlecard"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/firstcard"
                    android:layout_marginBottom="@dimen/padding_8dp"
                    android:layout_marginLeft="@dimen/padding_8dp"
                    android:layout_marginRight="@dimen/padding_8dp"
                    app:cardCornerRadius="@dimen/padding_4dp">

                    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="@dimen/padding_8dp"
                        android:layout_marginLeft="@dimen/padding_8dp"
                        android:layout_marginRight="@dimen/padding_8dp">

                        <RelativeLayout
                            android:id="@+id/middlecard_relative"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_margin="@dimen/padding_4dp">

                            <TextView
                                android:id="@+id/deposite"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"
                                android:layout_alignParentStart="true"
                                android:layout_marginTop="@dimen/padding_4dp"
                                android:gravity="center_vertical"
                                android:text="Deposit"
                                android:textSize="@dimen/text_size_big_16" />


                            <TextView
                                android:id="@+id/knowmore"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/deposite"
                                android:text="@string/txt_know_more"
                                android:layout_marginTop="@dimen/padding_8dp"
                                android:textSize="@dimen/text_size_extra_extra_small_10"
                                />


                            <CheckBox
                                android:id="@+id/checkbox"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentEnd="true"
                                android:layout_alignParentRight="true"
                                android:inputType="number"
                                android:paddingEnd="@dimen/padding_16dp"
                                android:paddingRight="@dimen/padding_16dp"
                                android:textColor="@android:color/black"
                                android:textSize="@dimen/text_size_big_16" />
                        </RelativeLayout>

                        <RelativeLayout
                            android:id="@+id/middletwo"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/middlecard_relative"
                            android:layout_margin="@dimen/padding_4dp"
                            android:visibility="gone"
                            >

                            <TextView
                                android:id="@+id/middle_con_duration"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"
                                android:text="Charge (Rs.)"

                                android:textSize="@dimen/text_size_big_16" />

                            <EditText
                                android:id="@+id/etDeposit"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentEnd="true"
                                android:layout_alignParentRight="true"
                                android:gravity="center"
                                android:paddingEnd="@dimen/padding_16dp"
                                android:paddingRight="@dimen/padding_16dp"
                                android:hint="1000"

                                android:maxLength="4"
                                android:inputType="number"
                                android:textSize="@dimen/text_size_big_16"

                                />
                        </RelativeLayout>
                    </RelativeLayout>

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


                <android.support.v7.widget.CardView
                    android:id="@+id/seccard"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/middlecard"
                    android:layout_marginBottom="@dimen/padding_8dp"
                    android:layout_marginLeft="@dimen/padding_8dp"
                    android:layout_marginRight="@dimen/padding_8dp"
                    app:cardCornerRadius="@dimen/padding_4dp">

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_horizontal"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/describe_constant_text"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:layout_marginTop="@dimen/padding_8dp"
                            android:text="Describe Your item"
                            android:textColor="#ff4f00"
                            android:textStyle="bold" />


                        <RelativeLayout
                            android:id="@+id/rlTohide"
                            android:layout_marginTop="@dimen/padding_4dp"
                            android:layout_width="160dp"
                            android:layout_height="120dp"
                            android:background="@drawable/greyborder_transparentbg"
                            >

                            <ImageView
                                android:id="@+id/img1"
                                android:layout_centerInParent="true"
                                android:layout_width="40dp"
                                android:src="@drawable/addimg"
                                android:layout_height="40dp" />

                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_below="@id/img1"
                                android:text="(Optional)"
                                android:textSize="@dimen/text_size_extra_extra_small_10"
                                android:textColor="@color/text_grey_opc"
                                android:layout_centerInParent="true"
                                />


                        </RelativeLayout>


                        <ImageView
                            android:visibility="gone"
                            android:id="@+id/imgResource"
                            android:layout_width="120dp"
                            android:layout_height="120dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="@dimen/padding_8dp"
                            />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="@dimen/padding_8dp"
                        android:layout_marginRight="@dimen/padding_8dp"
                        android:layout_marginTop="180dp"
                        android:orientation="vertical">

                        <RelativeLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/insidecardone"
                            android:layout_margin="@dimen/padding_4dp"
                            android:layout_marginLeft="@dimen/padding_8dp"

                            android:layout_marginRight="@dimen/padding_8dp">

                            <TextView
                                android:id="@+id/con_product_name"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"
                                android:layout_marginTop="8dp"
                                android:text="Name Of Product"
                                android:textSize="@dimen/text_size_big_16" />

                            <EditText
                                android:id="@+id/product_name"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentEnd="true"
                                android:layout_toEndOf="@+id/con_product_name"
                                android:layout_toRightOf="@+id/con_product_name"

                                android:layout_alignParentRight="true"
                                android:hint="E.g. Nikon DSLR"
                                android:paddingEnd="@dimen/padding_16dp"
                                android:paddingRight="@dimen/padding_16dp"
                                android:maxLength="30"
                                android:inputType="textPersonName"
                                android:layout_marginLeft="@dimen/padding_16dp"
                                android:layout_marginStart="@dimen/padding_16dp"
                                android:textColor="@android:color/black"
                                android:textSize="@dimen/text_size_big_16"/>
                        </RelativeLayout>

                        <RelativeLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/insidecardtwo"
                            android:layout_margin="@dimen/padding_4dp"
                            android:layout_marginBottom="@dimen/padding_8dp"
                            android:layout_marginLeft="@dimen/padding_8dp"
                            android:layout_marginRight="@dimen/padding_8dp">

                            <TextView
                                android:id="@+id/Description"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"
                                android:text="Description :"
                                android:textSize="@dimen/text_size_big_16" />

                            <EditText
                                android:id="@+id/desc_box"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/Description"
                                android:hint="E.g. Comes with 18-55 mm lens, charger and carry case"
                                android:layout_marginTop="@dimen/padding_8dp"
                                android:background="@drawable/white_border_request_screen"
                                android:textColor="@android:color/darker_gray"
                                android:textSize="@dimen/text_size_big_16" />

                        </RelativeLayout>


                    </LinearLayout>

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

            </RelativeLayout>

        </ScrollView>

        <Button
            android:id="@+id/makeOffer"
            android:layout_width="match_parent"
            android:layout_height="@dimen/padding_48dp"
            android:layout_alignParentBottom="true"
            android:background="@color/new_primary_text"
            android:padding="@dimen/padding_8dp"
            android:text="@string/txt_make_offr"
            android:textColor="@android:color/white"
            android:textSize="@dimen/text_size_18"
            />
    </RelativeLayout>

基本上我所做的是将相对布局作为父级并使用android:layout_alignParentBottom="true" 用于对齐底部按钮并将其余内容添加到 ScrollView 的参数。

【问题讨论】:

    标签: android xml android-layout


    【解决方案1】:

    在优惠按钮上方设置您的ScrollView 并删除边距

    <ScrollView
            android:id="@+id/scroll"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/toolbar"
            android:layout_above="@+id/makeOffer">
    

    在清单中更改您的活动的windowSoftInputMode

    android:windowSoftInputMode="adjustResize"
    

    【讨论】:

    • 清单部分已经完成.. 尝试其他修改
    【解决方案2】:

    只需一个参数即可工作

     android:isScrollContainer="true"
    

    将此添加到&lt;ScrollView /&gt;

    参考here

    清单中只有一个标签

    android:windowSoftInputMode="adjustResize"
    

    【讨论】:

      猜你喜欢
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多