2014-01-05 296 views
0

我有滾動視圖的問題.. 我有一個滾動視圖,佔用所有的顯示;裏面有一個頁眉,頁腳和滾動區域;在這個滾動區域中,我有一些edittext,複選框和旋鈕。您可以檢查下面的佈局文件的代碼。 當活動啓動時,用戶可以看到標題和子滾動內的一些內容。當我嘗試向下滾動子滾動視圖時,有一部分由於鍵盤而無法查看其餘部分。應該可以向下滾動父滾動以查看子滾動內的其餘字段,但父滾動不移動...滾動視圖與滾動視圖裏面,當軟鍵盤出現時,父滾動視圖不滾動

我已經設置了windowSoftInputMode="adjustPan",因爲當鍵盤出現時,我想主播相同的顯示,並嘗試使用父滾動到達頁腳。 我試圖設置softinput模式來調整resize,但這給了我一個小區域來查看子滾動內的內容。 是可能的,還是應該設置爲調整大小並縮小頁眉和頁腳以便用戶更多地看到子滾動內的內容?

這裏是佈局的xml。

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:id="@+id/sc1" 
android:fillViewport="true" 
android:focusableInTouchMode="false" 
android:layout_height="match_parent" > 

<RelativeLayout 

android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="#fff" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" > 

<LinearLayout 
    android:id="@+id/top" 
    android:layout_alignParentTop="true" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:background="@layout/gradient"> 

    <ImageView 
     android:id="@+id/optiserlogo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" 
     android:layout_gravity="center" 
     android:src="@drawable/optiser" /> 

</LinearLayout> 
<LinearLayout 
android:id="@+id/bottom" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:layout_alignParentBottom="true" 
> 
<Button 
     android:id="@+id/btn_saudevisual" 
     android:layout_width="fill_parent" 
     android:layout_height="100dp" 
     android:layout_weight="0.2" 
     android:layout_marginRight="-4.5dp" 
     android:layout_marginLeft="-4.5dp" 
     android:textSize="10dp" 
      android:drawableTop="@drawable/saude_visualoff" 
     android:background="#fff" 
     android:text="Saúde Visual" /> 

    <Button 
     android:id="@+id/btn_myoptiser" 
     android:layout_width="fill_parent" 
     android:layout_height="100dp" 
     android:layout_weight="0.2" 
     android:layout_marginRight="-4.5dp" 
     android:layout_marginLeft="-4.5dp" 
     android:textSize="10dp" 
      android:drawableTop="@drawable/myoptiseron" 
     android:background="#fff" 
     android:text="myOptiser" /> 

    <Button 
     android:id="@+id/btn_empresa" 
     android:layout_width="fill_parent" 
     android:layout_height="100dp" 
     android:layout_weight="0.2" 
     android:layout_marginRight="-4dp" 
     android:layout_marginLeft="-4.5dp" 
     android:text="Empresa" 
     android:textSize="10dp" 
      android:drawableTop="@drawable/empresaoff" 
     android:background="#fff" 
     /> 
</LinearLayout> 
<LinearLayout 
android:orientation="vertical" 
    android:layout_below="@id/top" 
    android:layout_above="@id/bottom" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:background="#C0C0C0" 
     android:layout_marginTop="10dp" 
     android:layout_height="25dp"> 

     <Button 
      android:id="@+id/voltar" 
      android:layout_width="20dp" 
      android:layout_height="20dp" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="20dp" 

      android:background="@drawable/menu_anterior" /> 

     <Button 
      android:id="@+id/menuprincipal" 
      android:layout_width="20dp" 
      android:layout_height="20dp" 
      android:layout_centerVertical="true" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="20dp" 
      android:background="@drawable/menu_principal" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_centerHorizontal="true" 
      android:text="Liquidos" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

    </RelativeLayout> 


     <ScrollView 
      android:id="@+id/scrollView1" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:isScrollContainer="false" 
      > 

      <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 

     <EditText 
      android:id="@+id/editText1" 
      android:layout_width="200dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/textView3" 
      android:layout_alignBottom="@+id/textView3" 
      android:layout_alignLeft="@+id/spinner1" 
      android:layout_alignRight="@+id/spinner1" 
      android:singleLine="true" 
      android:ems="10" > 

      <requestFocus /> 
     </EditText> 

     <Spinner 
      android:id="@+id/spinner2" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:layout_marginTop="15dp" 
      android:layout_alignLeft="@+id/editText1" 
      android:layout_below="@+id/editText1" /> 



     <EditText 
      android:id="@+id/editText2" 
      android:layout_width="200dp" 
      android:singleLine="true" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/spinner2" 
      android:layout_below="@+id/checkBox1" 
      android:ems="10" /> 

     <EditText 
      android:id="@+id/editText3" 
      android:layout_width="200dp" 
      android:singleLine="true" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/editText2" 
      android:layout_below="@+id/editText2" 
      android:ems="10" /> 

     <EditText 
      android:id="@+id/editText4" 
      android:layout_width="200dp" 
      android:singleLine="true" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/editText3" 
      android:layout_below="@+id/editText3" 
      android:ems="10" /> 



     <TextView 
      android:id="@+id/textView7" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editText4" 
      android:layout_alignBottom="@+id/editText4" 
      android:layout_alignLeft="@+id/textView5" 
      android:text="Email" 
      android:textColor="#000" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
     <EditText 
      android:id="@+id/editText5" 
      android:layout_width="200dp" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/editText3" 
      android:layout_below="@+id/editText3" 
      android:singleLine="true" 
      android:ems="10" /> 
     <EditText 
      android:id="@+id/editText6" 
      android:layout_width="200dp" 
      android:singleLine="true" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/editText3" 
      android:layout_below="@+id/editText5" 
      android:ems="10" /> 

     <TextView 
      android:id="@+id/textView6" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editText6" 
      android:layout_alignBottom="@+id/editText6" 
      android:layout_toLeftOf="@+id/spinner1" 
      android:text="Contacto" 
      android:textColor="#000" 
      android:textAppearance="?android:attr/textAppearanceSmall" /> 
     <Button 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/editText3" 
      android:layout_below="@+id/editText6" 
      android:text="Finalizar Encomenda" /> 

     <CheckBox 
      android:id="@+id/checkBox2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/spinner2" 
      android:layout_toRightOf="@+id/checkBox1" 
      android:textColor="#000" 
      android:text="Novo Paciente" /> 

     <CheckBox 
      android:id="@+id/checkBox1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignRight="@+id/spinner2" 
      android:layout_below="@+id/spinner2" 
      android:text="Entidade" 
      android:textColor="#000" /> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignRight="@+id/textView2" 
      android:layout_below="@+id/textView2" 
      android:layout_marginTop="16dp" 
      android:text="Obs" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textColor="#000" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/spinner1" 
      android:layout_marginBottom="14dp" 
      android:layout_toLeftOf="@+id/editText1" 
      android:layout_marginRight="10dp" 
      android:text="Nome" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textColor="#000" /> 

     <TextView 
      android:id="@+id/textView13" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBottom="@+id/spinner2" 
      android:layout_alignRight="@+id/textView3" 
      android:layout_marginBottom="14dp" 
      android:text="Qnt" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textColor="#000" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editText2" 
      android:layout_alignBottom="@+id/editText2" 

      android:layout_toLeftOf="@+id/editText2" 
      android:layout_alignRight="@+id/textView2" 
      android:text="Entidade" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textColor="#000" /> 

     <Spinner 
      android:id="@+id/spinner1" 
      android:layout_width="200dp" 
      android:layout_height="50dp" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginRight="30dp" 
      android:layout_marginTop="20dp" /> 

     <TextView 
      android:id="@+id/textView5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/editText3" 
      android:layout_alignBottom="@+id/editText3" 
      android:layout_alignRight="@+id/textView4" 
      android:text="Nome" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:textColor="#000" /> 

     <EditText 
      android:id="@+id/editText7" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:layout_above="@+id/checkBox2" 
      android:layout_toRightOf="@+id/spinner2" 
      android:enabled="false" 
      android:ems="10" /> 

     </RelativeLayout> 
     </ScrollView> 




    </LinearLayout> 

</RelativeLayout> 
</ScrollView> 
在我已經加入此代碼的活動

...

ScrollView sc = (ScrollView) findViewById(R.id.sc1); 
    ScrollView sc1 = (ScrollView) findViewById(R.id.scrollView1); 

    sc.setOnTouchListener(new View.OnTouchListener() { 



     @Override 
     public boolean onTouch(View arg0, MotionEvent arg1) { 
      findViewById(R.id.scrollView1).getParent().requestDisallowInterceptTouchEvent(false); 
      String tag="ssss"; 
      Log.v(tag,"PARENT TOUCH"); 
      return false; 
     } 
     }); 
     sc1.setOnTouchListener(new View.OnTouchListener() { 

     public boolean onTouch(View v, MotionEvent event) 
     { 

     // Disallow the touch request for parent scroll on touch of 
     // child view 
      String tag="ssss"; 
       Log.v(tag,"chield TOUCH"); 
     v.getParent().requestDisallowInterceptTouchEvent(true); 
     return false; 
     } 
     }); 

它檢測的父親和孩子,但鍵盤出現時,父親滾動不滾動...

回答

0

使用windowSoftInputMode="adjustPan"當鍵盤出現時,您將失去對焦窗口的焦點,您將無法滾動。

試試這個不知道,如果它的工作,但沒有傷害嘗試這種解決方案。

您活動的onCreate()

添加this.getWindow()setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)內。

您的清單 android:windowSoftInputMode =「stateVisible | adjustResize | adjustPan」