You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让NestedScrollView内的EditText占满父容器剩余高度

让NestedScrollView内的RichEditText占据剩余空间的实现方案

要实现RichEditText占据NestedScrollView的剩余空间,需要调整布局容器的属性,具体修改如下:

核心修改点

  • 将NestedScrollView的直接子LinearLayout的高度从wrap_content改为match_parent,让容器能填充NestedScrollView的整个可用空间
  • 给该LinearLayout添加权重分配规则,让RichEditText自动占据剩余空间:
    • 保持上方ll_contain_rv的高度为wrap_content(自适应内容高度)
    • 给RichEditText设置android:layout_height="0dp"和android:layout_weight="1",使其填充容器剩余空间

修改后的完整布局代码

<androidx.core.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    app:layout_constraintTop_toBottomOf="@id/et_title"
    app:layout_constraintBottom_toBottomOf="parent">

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

        <LinearLayout
            android:id="@+id/ll_contain_rv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:visibility="gone">

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/rv_checklist"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                android:orientation="vertical"
                android:visibility="visible"/>

            <LinearLayout
                android:id="@+id/ll_add_checklist"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:background="?attr/selectableItemBackground"
                android:paddingEnd="@dimen/_80sdp"
                android:alpha="0.7">

                <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/iv_add"
                    android:layout_width="@dimen/_30sdp"
                    android:layout_height="@dimen/_30sdp"
                    android:padding="@dimen/_5sdp"
                    android:scaleType="fitCenter"
                    app:tint="@color/black"
                    android:src="@drawable/ic_add"/>

                <androidx.appcompat.widget.AppCompatTextView
                    android:id="@+id/tv_add"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginStart="@dimen/_5sdp"
                    style="@style/AppTheme.TextView.Content_Note"
                    android:gravity="center_vertical"
                    android:text="@string/text_add_item"/>

            </LinearLayout>
        </LinearLayout>

        <com.sophimp.are.RichEditText
            android:id="@+id/et_content"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:background="@android:color/transparent"
            android:layout_marginTop="@dimen/_5sdp"
            android:hint="@string/text_notes_here"
            android:inputType="textMultiLine|textNoSuggestions"
            style="@style/AppTheme.TextView.Content_Note"
            android:gravity="top"
            android:lineSpacingExtra="4dp"
            android:visibility="visible"/>

    </LinearLayout>
</androidx.core.widget.NestedScrollView>

补充说明

  • 当ll_contain_rv显示时,它会占用自身内容高度,RichEditText自动填充剩下的空间;当ll_contain_rv隐藏时,RichEditText会填充整个NestedScrollView的可用区域
  • 保持RichEditText的android:gravity="top",确保输入文本从控件顶部开始显示,避免内容居中导致的视觉问题

内容的提问来源于stack exchange,提问作者DucK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:31:17