[英]Soft Keyboard doesn't appear when tapping on EditText
我遇到了一個很奇怪的問題。 我正在開發一個Android應用程序。 如果我在活動上使用布局,那么一切都會按預期進行。 但是,如果我在Fragment中使用布局,則當我聚焦EditText
時,軟鍵盤將不再顯示。
這是我片段的代碼:
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import mariohenkel.com.familycheck.R;
import mariohenkel.com.familycheck.fragment.api.BaseFragment;
/**
* Created by Developer on 15.06.2015.
*/
public class SuchenFragment extends BaseFragment {
public static SuchenFragment newInstance() {
return new SuchenFragment();
}
private View v;
EditText etOrt;
public SuchenFragment(){ }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i("SuchenFragment", "onCreate");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_suchen_neu, container, false);
loadViewComponents();
loadInfoView();
return v;
}
private void loadViewComponents() {
etOrt = (EditText) v.findViewById(R.id.editText_Ort);
etOrt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("onClick", "onClick");
}
});
}
private void loadInfoView() {
}
}
EditText的onClick()
事件正確觸發。 我試圖通過以下代碼強制在onClick()
顯示鍵盤
InputMethodManager mImm = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
mImm.showSoftInput(SearchEdit, InputMethodManager.SHOW_IMPLICIT);
但沒有成功。 有什么想法我做錯了嗎?
編輯:我正在使用這個項目https://github.com/halysongoncalves/Material-Design-Example ,我正在嘗試使用第二個選項卡。 第一個按預期方式工作。
EDIT2:這是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<TableLayout
android:id="@+id/tl_views"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="1">
<TableRow
android:background="@color/accent"
android:minHeight="60dp">
<TextView
android:id="@+id/titel_ort"
android:layout_marginLeft="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textAppearance="?android:textAppearanceLarge"
android:layout_gravity="center_vertical"
android:text="Ort: "/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:hint="Ort eingeben"
android:id="@+id/editText_Ort"
android:paddingRight="16dp">
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:background="@color/gruen"
android:minHeight="60dp">
<TextView
android:id="@+id/titel_kategorie"
android:layout_marginLeft="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textAppearance="?android:textAppearanceLarge"
android:layout_gravity="center_vertical"
android:text="Kategorie: "/>
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner_Kategorie"
android:layout_gravity="center_vertical"
android:paddingRight="16dp"
android:spinnerMode="dropdown" />
</TableRow>
<TableRow
android:background="@color/gelb"
android:minHeight="60dp">
<TextView
android:id="@+id/titel_suchbegriff"
android:layout_marginLeft="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textAppearance="?android:textAppearanceLarge"
android:layout_gravity="center_vertical"
android:text="Suchbegriff: "/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText_Suchbegriff"
android:layout_gravity="center_vertical"
android:hint="Suchbegriff"
android:paddingRight="16dp"/>
</TableRow>
</TableLayout>
<RelativeLayout
android:layout_below="@+id/tl_views"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@color/theme_dialer_primary"
android:gravity="center">
<TextView
android:id="@+id/titel_suchen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textAppearance="?android:textAppearanceLarge"
android:text="Jetzt suchen"/>
</RelativeLayout>
</RelativeLayout>
更新:另一件事很奇怪。 如果我打開另一個活動並返回到托管片段的活動,則鍵盤正在按預期方式工作...
在您的xml使用中,在您的EditText
標簽中
<requestFocus />
來源: EditText請求焦點
也結帳: Android:當焦點位於EditText上時自動顯示軟鍵盤
PS對SO或Google進行很少的探索會遇到問題,並將節省您編寫問題的時間。
逐步重新創建項目后,我發現了自己的錯誤。
在我的第一個片段中,我使用了帶有.get()的AsyncTask來從服務器獲取SID。 在刪除該.get()並更改了以下邏輯之后,所有操作均按預期進行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.