android - 在 fragment 中的 EditText 中按回车键时修复顶部的工具栏

标签 android android-fragments android-edittext android-toolbar

有一个带有 EditText 的 fragment ,我想在这个 fragment 的顶部显示一个固定的工具栏。

我希望这个工具栏显示在顶部,无论我在 EditText 上按了多少次 enter,但现在它只是向上滚动并消失了。

我该如何解决?

这是 fragment 的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    tools:context=".MemoFragment">

    <android.support.design.widget.CollapsingToolbarLayout
    android:layout_width="match_parent"
    android:layout_height="60dp">

    <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/memo_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        app:layout_collapseMode="pin">

        <Button
            android:id="@+id/btn_confirm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/button_shape"
            android:text="Confirm"
            android:textColor="@android:color/white"
            android:textSize="@dimen/text_size_medium"
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

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

</android.support.design.widget.CollapsingToolbarLayout>

    <EditText
        android:id="@+id/memo_edit_text"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="@dimen/spacing_medium"
        android:background="@drawable/text_shape"
        android:fontFamily="sans-serif"
        android:gravity="top" />

</RelativeLayout>

我已经尝试了在 StackOverflow 上找到的许多解决方案,但无法解决。 谁能帮我这个? 谢谢。

最佳答案

如果你还是看不懂@Parul的评论,

这里是更新的代码:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    tools:context=".MemoFragment">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapseActionView"
        android:layout_alignParentTop="true"
        android:layout_width="match_parent"
        android:layout_height="60dp">

        <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/memo_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            app:layout_collapseMode="pin">

            <Button
                android:id="@+id/btn_confirm"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/button_shape"
                android:text="Confirm"
                android:textColor="@android:color/white"
                android:textSize="@dimen/text_size_medium"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

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

    </android.support.design.widget.CollapsingToolbarLayout>

    <EditText
        android:id="@+id/memo_edit_text"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/collapseActionView"
        android:layout_marginLeft="@dimen/spacing_medium"
        android:background="@drawable/text_shape"
        android:fontFamily="sans-serif"
        android:gravity="top" />

</RelativeLayout>

这里发生的事情是您需要在相对布局中定义特定位置,否则稍后绘制/定义的 View (您的编辑文本)将显示在先前绘制的 View (您的工具栏)之上。

关于android - 在 fragment 中的 EditText 中按回车键时修复顶部的工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659632/

相关文章:

android - 如何在 Fragment 中获取对 LocationManager 的引用

android - ARCore 屏幕坐标到世界坐标 openGL

java - 如何使 "provided"范围在 Android Studio 上工作?

android - 如何在选项卡式 Activity 中的 SupportMapFragment 上设置标记?

android - 如何使用ViewPager多次滑动同一个Fragment?

android - 从警报对话框中单击确定后,从所有编辑文本中删除焦点

android - 聚焦以编程方式编辑文本 (Kotlin)

java - 如何将上下文传递给 AsyncTask?

android - NestedScrollView 剪切/覆盖嵌套 fragment 的底部

android - Android中的自定义EditText : How do you reference in XML Layout?