似乎也沒關係,實際上,直到這種觀點是從同一個窗口。 作爲文檔說View.getWindowToken():
檢索唯一令牌識別這一觀點被附 到窗口。
所有活動的意見都連接到同一窗口。所以,你會從每個視圖中獲得相同的信號。
但是,如果你有鍵盤可見,並且表現出一定的對話框。之所以這樣說,對話將有一定的自定義視圖:
dialog_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tryHideKeyboard"
android:text="Try hide keyboard"/>
</LinearLayout>
TestDialogFragment.java
public class TestDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final View view = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_layout, null);
view.findViewById(R.id.tryHideKeyboard).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
final InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
});
// Use the Builder class for convenient dialog construction
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("Test dialog")
.setView(view)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
// nothing to do
}
});
// Create the AlertDialog object and return it
return builder.create();
}
}
然後在對話框(與活動揭開了按Try hide keyboard
按鈕例如主佈局上的EditText和鍵盤可見),後面的鍵盤將不會關閉,因爲對話框有自己的窗口。
所以,我會說,沒有,也沒關係,直到您嘗試從視圖將附着在另一個窗口(例如,從彈出的對話框中)關閉鍵盤。
感謝您將它放在一起! –