我已经看到了很多关于这些主题的主题,但仍然无法弄清楚为什么会发生这种情况。我在左侧有一个片段,它显示一个列表,在右侧有一个视图寻呼机(有 2 页)。
当我第一次启动我的活动键盘时没有显示。那太棒了。但是当我点击一个列表项(这将在 viewpager => myPager.setAdapter(..) 中显示一个新内容),或者当我向右滑动时(这里它还没有显示)然后向左返回到第一个页面显示,键盘再次开始显示,并在剩下的时间里继续显示,无论我做什么。
我已经尝试放入 android:focusableInTouchMode="true"
我可以放入的所有布局,但仍然......
奇怪的是,我的布局中的编辑文本不是重点,而是.. 别的东西。也许是一个布局,但我不知道(也不知道怎么知道=)。这有点奇怪,因为我尝试了很多解决方案,但它仍然不起作用。
如果有人有任何想法...
谢谢 !!!!
这是我的代码的相关部分。
清单.xml
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main"
android:windowSoftInputMode="stateHidden" >
main_activity.xml
(DateList 包含列表视图和下面的其他内容(不关注))
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<fragment android:name="com.example.main.courante.e.DateList"
android:id="@+id/list_frag"
android:tag="list"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
/>
<TabHost
android:id="@+id/tabhost"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="3"
android:paddingLeft="5dp"
android:paddingTop="5dp" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:layout_gravity="center">
<TabWidget
android:id="@android:id/tabs"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:tabStripEnabled="true"
/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
viewpager 中显示的布局:
(我承认有点乱,但只是为了告诉你是否有可聚焦模式等)
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:orientation="vertical"
android:scrollbars="vertical"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center"
android:id="@+id/linear"
android:paddingLeft="30dp"
android:paddingRight="30dp"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/padding_small"
android:layout_marginBottom="@dimen/padding_small"
android:orientation="horizontal"
android:layout_gravity="center"
android:gravity="center"
android:id="@+id/top_lin">
<!-- android:background="@drawable/rounded_border_fiche_element" -->
<ImageView
android:id="@+id/perm_img"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_marginLeft="50dp"
android:padding="@dimen/padding_small"
android:src="@android:drawable/ic_notification_overlay"
android:contentDescription="TODO"
android:background="@drawable/image_bg"/>
<TextView
android:id="@+id/perm_nom"
style="@style/textview_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<TextView
style="@style/textview_info"
android:id="@+id/perm_prenom"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
/>
<TextView
style="@style/textview_info"
android:id="@+id/perm_matricule"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingRight="@dimen/padding_medium"
/>
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp" />
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:id="@+id/table_check">
<!-- android:background="@drawable/rounded_border_fiche_element" -->
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_m1"
android:textAppearance="?android:attr/textAppearanceMedium" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_m2"
android:textAppearance="?android:attr/textAppearanceMedium" />
<CheckBox
android:id="@+id/checkBox2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_m3"
android:textAppearance="?android:attr/textAppearanceMedium" />
<CheckBox
android:id="@+id/checkBox3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_m4"
android:textAppearance="?android:attr/textAppearanceMedium" />
<CheckBox
android:id="@+id/checkBox4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_m5"
android:textAppearance="?android:attr/textAppearanceMedium" />
<CheckBox
android:id="@+id/checkBox5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/question_m6"
android:textAppearance="?android:attr/textAppearanceMedium" />
<CheckBox
android:id="@+id/checkBox6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
</TableRow>
</TableLayout>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/bot_lin">
<!-- android:background="@drawable/rounded_border_fiche_element"> -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bot_lin_lin"
android:focusableInTouchMode="true"
android:focusable="true" >
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/securite" />
<EditText
android:id="@+id/securite"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="textMultiLine"
android:lines="5" >
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bot_lin_lin2"
android:focusableInTouchMode="true"
android:focusable="true" >
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/client" />
<EditText
android:id="@+id/clients"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="textMultiLine"
android:lines="5"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bot_lin_lin3"
android:focusableInTouchMode="true"
android:focusable="true" >
<TextView
android:id="@+id/textView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/entretien" />
<EditText
android:id="@+id/entretien"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="textMultiLine"
android:lines="5"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
编辑 :
我注意到一件事。当我通过寻呼机滑动时,键盘中空格按钮左侧的第二个按钮会快速从“:-)”变为“:”,并在滚动完成后返回“:-)”。第二个“:”来自我在操作栏上的搜索小部件。也许如果我能阻止这个人集中注意力就可以了?我该怎么做?因为它是这样定义的:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_settings"
android:title="@string/menu_settings"
android:orderInCategory="100"
android:showAsAction="never" />
<item android:id="@+id/menu_search"
android:title="@string/menu_search"
android:icon="@drawable/ic_menu_search"
android:showAsAction="ifRoom"
android:actionViewClass="android.widget.SearchView"
android:inputType="number" />
编辑 2:
为了防止 searchwidget 获得焦点,我把这两行代码放在了
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(searchView.getWindowToken(),0);
我在任何地方都调用 myPager.setAdapter() 即当我点击一个列表项时,我不得不将它也放在 viewpager 中的 public void onPageScrolled() 中......但它真的不流畅,因为你很快就会看到键盘显示和不到一秒钟就消失了……如果有人有其他想法……