আমি একটি আছে FragmentActivity
ব্যবহার করে একটি ViewPager
বিভিন্ন টুকরা পরিবেশন করা। প্রতিটি ListFragment
নীচের লেআউট সহ একটি :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp">
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<EditText android:id="@+id/entertext"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
ক্রিয়াকলাপ শুরু করার সময়, নরম কীবোর্ডটি দেখায়। এর প্রতিকারের জন্য, আমি খণ্ডটির ভিতরে নিম্নলিখিতগুলি করেছি:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Save the container view so we can access the window token
viewContainer = container;
//get the input method manager service
imm = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
. . .
}
@Override
public void onStart() {
super.onStart();
//Hide the soft keyboard
imm.hideSoftInputFromWindow(viewContainer.getWindowToken(), 0);
}
আমি মূল ক্রিয়াকলাপের জন্য উইন্ডো টোকেন অ্যাক্সেস করার উপায় হিসাবে আগত ViewGroup container
প্যারামিটারটি সংরক্ষণ করি onCreateView
। এটি ত্রুটিবিহীন চলে, তবে কীবোর্ডটি কল থেকে লুকানো হয় hideSoftInputFromWindow
না onStart
।
মূলত, আমি এর পরিবর্তে স্ফীত লেআউটটি ব্যবহার করার চেষ্টা করেছি container
, যেমন:
imm.hideSoftInputFromWindow(myInflatedLayout.getWindowToken(), 0);
তবে এটি NullPointerException
সম্ভবত ছড়িয়ে গেল কারণ সম্ভবত খণ্ডটি কোনও ক্রিয়াকলাপ নয় এবং উইন্ডোটির একটি অনন্য টোকেন নেই?
কোনও খণ্ডের মধ্যে থেকে কি সফট কীবোর্ডটি আড়াল করার কোনও উপায় আছে, বা আমি কি কোনও পদ্ধতি তৈরি FragmentActivity
করে খণ্ডের মধ্যে থেকে কল করব?