พูดง่ายๆ:
A ViewPager
ใน FragmentActivity
โดยมี 4 Fragment
s
A TextView
ในรูปแบบเหนือ ViewPager
ภายนอก Fragment
s
ฉัน "เพิ่ม" Fragment
แทนที่เค้าโครงของ Fragment
อื่น:
getSupportFragmentManager()
.beginTransaction()
.add(R.layout.activity, fragmentToPush)
.addToBackStack("1")
.commit();
ฉันทำความสะอาดกองหลัง:
getSupportFragmentManager()
.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
หลังจากนั้นแป้นพิมพ์จะไม่แสดงอีกต่อไปเมื่อกด Textview มีโฟกัส แต่คีย์บอร์ดไม่ไป
แก้ไข :
TextView
ไม่สามารถโฟกัสได้อยู่แล้วหลังจาก "เพิ่ม" ฉันใช้ AutoCompleteTextView
ฉันกำลังทำอะไรกับมัน:
mSearchAutoCompletion = (AutoCompleteTextView)
mIncludeSearchLayout.findViewById(R.id.search_text);
mSearchAutoCompletion.addTextChangedListener(new
TextWatcher() {... // nothing more with the textview
mSearchAutoCompletion.setOnEditorActionListener(new
OnEditorActionListener() {... // nothing more with the textview
แก้ไข 2 : เค้าโครง (ฉันใช้ รวม):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_home_layout_search"
android:layout_width="match_parent"
android:layout_height="@dimen/edit_text"
android:background="@drawable/gradient_banner_inverse" >
<ImageButton
android:id="@+id/search_button"
android:layout_width="@dimen/edit_text"
android:layout_height="@dimen/edit_text"
android:layout_alignParentLeft="true"
android:adjustViewBounds="true"
android:background="@drawable/selector_blue"
android:padding="2dp"
android:scaleType="centerInside"
android:src="@drawable/search" />
<AutoCompleteTextView
android:id="@+id/search_text"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginBottom="1px"
android:layout_marginRight="1px"
android:layout_marginTop="1px"
android:layout_toRightOf="@+id/search_button"
android:background="@android:color/white"
android:focusableInTouchMode="true"
android:hint="@string/search_hint"
android:imeOptions="actionSearch"
android:inputType="text"
android:paddingLeft="@dimen/margin_medium"
android:paddingRight="@dimen/margin_medium"
android:singleLine="true"
android:textColor="@color/clr_dark_grey" />
<ImageButton
android:id="@+id/search_cross"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_marginBottom="1px"
android:layout_marginRight="1px"
android:layout_marginTop="1px"
android:background="@android:color/white"
android:src="@android:drawable/ic_menu_close_clear_cancel"
android:visibility="gone" />
</RelativeLayout>
จากนั้น include :
<include
android:id="@+id/activity_search"
android:layout_width="wrap_content"
android:layout_height="@dimen/edit_text"
android:layout_alignParentTop="true"
android:layout_marginLeft="@dimen/margin_large"
android:layout_marginRight="@dimen/margin_large"
android:layout_marginTop="@dimen/margin_large"
layout="@layout/view_search" />
แก้ไข 3: ฉันพยายามแสดงแป้นพิมพ์ด้วยตนเอง
mSearchAutoCompletion.setOnClickListener(this);
case R.id.search_text:
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(mSearchAutoCompletion.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);
break;
- ตอนแรกฉันเลือกช่องข้อความ มันแสดงแล้วซ่อนคีย์บอร์ดอย่างรวดเร็ว (แปลก)
- เมื่อฉันเพิ่มส่วนต่างๆ แป้นพิมพ์ก็โอเค
- เมื่อฉันลบส่วนต่างๆ แป้นพิมพ์จะไม่ตอบสนองอีกต่อไป
- ฉันเพิ่มส่วนอีกครั้ง แป้นพิมพ์ก็ใช้ได้อีกครั้ง