【问题标题】:AppCompatEditText focus IssueAppCompatEditText 焦点问题
【发布时间】:2017-06-14 06:41:49
【问题描述】:

我有一个长表单(LinearLayout 作为根),它由 EditTexts 和 TextView 组成。 现在我面临的问题是:单击编辑文本后,如果我单击文本视图,则编辑文本的焦点未清除。因此,由于焦点,屏幕滚动到该编辑文本。

我已经尝试过解决方案 - 父布局中的 android:focusableInTouchMode="true" 但没有运气。

我附上了一张显示问题的图片。我点击了 TextView 的咨询医生字段,但焦点一直在电子邮件编辑文本上。

请帮我解决一些问题。谢谢。

【问题讨论】:

  • 在触摸模式下将 textview 置于可聚焦状态
  • @JaydeepPatel 试过了。不工作
  • @WannaBeGeek 也试过这个,发生的情况是,编辑光标在屏幕上下滚动时上下移动

标签: android android-layout android-edittext textview


【解决方案1】:

单击编辑文本后,如果我单击文本视图,则编辑文本的焦点不会清除。因此,由于焦点,屏幕滚动到该编辑文本。

如下所示将 EditText 包裹在 FrameLayout 中

<FrameLayout

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:descendantFocusability="beforeDescendants"
        android:focusable="true"
        android:focusableInTouchMode="true">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </FrameLayout>

【讨论】:

  • 但随机方式有不止一个editext和texview(Like form)。如果我将每个 editText 都包装在框架布局中,那么它会使布局混乱。怎么说?
  • 是的,您需要单独包装每个 EditText。
【解决方案2】:

public static void hideSoftKeyboard(查看视图)

{

InputMethodManager imm = InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);

}

//在textview点击调用这个方法

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多