从EditText中删除焦点并保持其可编辑性

时间:2016-09-18 19:40:54

标签: android

我正在使用EditText但是当Activity启动时,EditText已经集中注意力了。我想删除焦点,并在点击时使其可编辑。

以下是我的edittext的代码。

<EditText
            android:id="@+id/et_HotelLocation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:drawableLeft="@drawable/ic_edit_location_black_24dp"
            android:drawablePadding="8dp"/>

3 个答案:

答案 0 :(得分:2)

在编辑文本的父布局中添加以下两个属性

android:focusable="true"
android:focusableInTouchMode="true" 

如果您的编辑文本在线性布局中,您可以这样做

<LinearLayout 
  android:focusable="true"
  android:focusableInTouchMode="true" 
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" />

<EditText
            android:id="@+id/et_HotelLocation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:drawableLeft="@drawable/ic_edit_location_black_24dp"
            android:drawablePadding="8dp"/>
</LinearLayout>

答案 1 :(得分:2)

你可以创建如下的虚拟布局,你应该保持在EditText的正上方,然后使用nextFocusUp和nextFocusLeft,如图所示。

<LinearLayout
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:layout_width="0px"
            android:layout_height="0px"/>

        <EditText

            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
             android:id="@+id/et"
            android:drawablePadding="8dp"
            android:nextFocusUp="@id/et"
            android:nextFocusLeft="@id/et"
            app:met_floatingLabel="normal" />

答案 2 :(得分:1)

此问题已得到回复here

  

试试这个 -   this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

     

否则,请在清单文件的活动中声明 -

<application android:icon="@drawable/icon"
             android:label="@string/app_name">
<activity android:name=".Main"
     android:label="@string/app_name"
     android:windowSoftInputMode="stateHidden"
     >