在我的活动中,默认情况下EditText是不可见的,一旦点击一个按钮,它就会变得可见。
我设法做到了这一点,但是一旦EditText可见,我就无法输入文本。换句话说,软键盘永远不会出现,写入光标永远不会出现,内部的提示永远不会出现,就像“冻结”一样。
我尝试了以下但没有解决我的问题
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editsearch.setVisibility(View.VISIBLE);
editsearch.setEnabled(true);
editsearch.setFocusable(true);
}
});
这是我的xml
<EditText
android:id="@+id/search"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@color/colorAccent"
android:drawableEnd="@drawable/ic_search"
android:drawablePadding="3dp"
android:layout_alignParentTop="true"
android:drawableRight="@drawable/ic_search"
android:visibility="invisible"/>
尝试在editsearch.setFocusable(true)行之后将editsearch.requestFocus()方法添加到代码中。
我找到了解决方案。
我使用相对布局,在我的Edittext下面,有一个listview。我发现Edittext在listview后面,所以我把它带到了前面。
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
editsearch.setVisibility(View.VISIBLE);
editsearch.requestFocus();
editsearch.bringToFront();
editsearch.invalidate();
}
});