Android EditText 没有聚焦

Android EditText not focusing

这是我的问题,我有一个非常简单的布局,显示 2 个 EditText,一个用于标题,另一个用于描述。这是 xml 文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:weightSum="1">

    <EditText
            android:layout_width="match_parent"
            android:layout_height="63dp"
            android:id="@+id/title_field"
            android:background="#ffffffff"
            android:hint="@string/titleFieldHint"
            android:padding="20dp"
            android:textSize="8.5pt"
            android:maxLines="1"/>

    <View
            android:layout_width="fill_parent"
            android:layout_height="1dp"
            android:background="@android:color/darker_gray"/>

    <EditText
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:id="@+id/description_field"
            android:hint="@string/descriptionHint"
            android:gravity="top"
            android:padding="20dp"
            android:scrollbars="vertical"
            android:textSize="8.5pt"
            android:background="#ffffff"
            android:inputType="textMultiLine"
            android:textIsSelectable="true"
            android:focusableInTouchMode="true" android:layout_weight="1"/>

</LinearLayout>

当我使用此布局启动 activity 时,键盘显示焦点 title_field,因此我可以编写并单击其他字段(键盘仍处于打开状态)并编写说明。但是,如果我隐藏键盘它不会再次出现(键盘),除非我点击 title_field,所以 description_field 没有响应,此外 title_field 支持 selection开箱即用(包括上下文操作栏),而 description_field 甚至 select.

都不会让我

我才刚刚开始 android 开发,有什么我遗漏的吗?

取出android:textIsSelectable="true".

编辑:

如果您需要能够保留文本以用作新编辑文本的一部分:

将 android:hint 更改为 andoid:text 以便能够通过键盘使用文本。但是,如果键盘关闭,它仍然需要返回到第一个编辑文本,然后它将保持打开状态以进行第二个编辑文本。

我会为两个编辑文本框使用高度作为 "wrap_content"。

<EditText
    ...
    android:text="descriptionHint"
    android:focusableInTouchMode="true"
    android:textIsSelectable="true"
    android:layout_weight="1"/>

如果您想在特定 activity 开始时使用键盘,例如搜索 activity,请在您的清单中使用此代码 -

注意 - 一旦用户登陆 activity...

,它就会弹出键盘
<application ... >
<activity
    android:windowSoftInputMode="stateVisible" ... >
    ...
</activity>
...

您也可以在 java 文件中执行此操作。使用 Java,您可以更好地控制键盘外观。这是它的代码 -

public void showSoftKeyboard(View view) {
if (view.requestFocus()) {
    InputMethodManager imm = (InputMethodManager)
            getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
    }
}

调用方法showSoftKeyboard()弹出键盘!!

希望对你有帮助!! 干杯!

Refrence Android Development Article

   <EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/startJourneyLinearLayout"
    android:layout_below="@+id/startJourneyLinearLayout"
    android:layout_marginLeft="65dp"
    android:layout_marginTop="28dp"
    android:ems="10" >

    <requestFocus />
</EditText>

好吧,要聚焦编辑文本,您可以使用代码

private void requestFocus(View view) {
        if (view.requestFocus()) {
            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
        }
    }

//Function Call
requestFocus(yourEditetxt);

我在使用 EditText 时遇到了同样的问题,我查看了很多博客以找出这个错误的解决方案,但没有找到解决方案。

然后检查我将全屏行作为默认主题(AppTheme)的主题部分

style name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"

这导致在屏幕上加载软键盘时出现问题。 我只是尝试上面的代码,它只是打开软键盘不工作,我输入的内容没有显示在 EditText 中。

我只是将主题从默认更改为这个,它工作正常。

style name="PhoneActivityTheme" parent="Theme.AppCompat.DayNight"