0

我已经看到了很多关于这些主题的主题,但仍然无法弄清楚为什么会发生这种情况。我在左侧有一个片段,它显示一个列表,在右侧有一个视图寻呼机(有 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() 中......但它真的不流畅,因为你很快就会看到键盘显示和不到一秒钟就消失了……如果有人有其他想法……

4

1 回答 1

1

我有一个合乎逻辑的想法来避免打开 SoftInput 键盘

将此视图添加到 viewpager 中显示的布局中:

<LinearLayout
        android:id="@+id/ll_focus"
        android:layout_width="0px"
        android:layout_height="0px"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:visibility="visible" >
    </LinearLayout>

这工作得很好。试试这个我亲爱的朋友

于 2012-08-06T12:06:39.540 回答