Android EditText使用标题后的整个活动高度
我正在开发一个android应用程序,以支持用户发布文章,并具有相同的EditText,下面是我的布局Android EditText使用标题后的整个活动高度,android,android-layout,android-edittext,android-view,material-components-android,Android,Android Layout,Android Edittext,Android View,Material Components Android,我正在开发一个android应用程序,以支持用户发布文章,并具有相同的EditText,下面是我的布局 问题在于单击EditText时,文章标题在视图中被切掉一半,EditText的光标在底部,应该在顶部 有人对如何修复它有什么建议吗?您必须为textinputtext设置重力,并删除android:gravity=“vertical” 应该是这样的: <?xml version="1.0" encoding="utf-8"?> <L
问题在于单击EditText时,文章标题在视图中被切掉一半,EditText的光标在底部,应该在顶部
有人对如何修复它有什么建议吗?您必须为
textinputtext
设置重力,并删除android:gravity=“vertical”
应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/article_title_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Write Article"
/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/article_text_field"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
现在,当你有很多行时,你的布局将在书写时滚动,标题为的应用程序栏将开始隐藏。我认为这很好,因为用户将看到更多的EditText,因此编写长文本将更容易如果您希望TextView和TextInputLayout水平显示(基于您的LinearLayout属性
android:orientation=“vertical”
),那么您可以通过以下方式实现所需的布局:
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/article_title_text_view"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:text="Write Article"
android:padding="12dp"/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/article_text_field"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/article_title_text_view"
android:layout_alignParentEnd="true"
app:hintEnabled="false">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="top"
android:gravity="top|start"
android:padding="12dp"
tools:text="@tools:sample/lorem/random"/>
</com.google.android.material.textfield.TextInputLayout>
</RelativeLayout>
如果要使TextView和TextInputLayout垂直对齐,请使用:
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/article_title_text_view"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:gravity="center"
android:padding="12dp"
android:text="Write Article"
android:textAlignment="center"/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/article_text_field"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_below="@+id/article_title_text_view"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
app:hintEnabled="false">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="top"
android:gravity="top|start"
android:padding="12dp"
tools:text="@tools:sample/lorem/random"/>
</com.google.android.material.textfield.TextInputLayout>
</RelativeLayout>
实际上,您应该在com.google.android.material.textfield.textinputtext中使用
android:inputType=“textMultiLine”
属性,并指定要为字段指定的行数。因为字段是一个冠词,表示多行字段。另外,请指定垂直方向。
代码如下所示
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/article_title_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Write Article" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/article_text_field"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:inputType="textMultiLine"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
发布用户界面的图片