2017-06-03 80 views
0

在我的布局中我有几个EditText和Spinners表示一个表格。一切正常,直到我选择EditText和键盘被打开,活动是adjustResize然后当我滚动到底部时选择微调项目我的活动滚动到顶部,我将不得不滚动回到底部。Spinner松开键盘时打开选区

我的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="10dp" 
    android:background="@color/white" 
    > 

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/nsV" 
     > 

      <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/tell_us_about" 
      style="@style/BoldStyle" 
      android:textColor="@color/colorAccent" 
      android:textSize="16sp" 
      android:layout_marginTop="10dp" 
      /> 

      <!-- Price section --> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 

       > 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/price_with_curr" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="*" 
        android:textSize="13sp" 
        /> 
      </LinearLayout> 

      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/Edit_Square" 
       android:id="@+id/price_et" 
       android:cursorVisible="true" 
       android:inputType="number" 
       android:textSize="13sp" 
       android:textCursorDrawable="@null" 
       /> 

      <!-- vehicle condition --> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/condition" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="*" 
        android:textSize="13sp" 
        /> 

      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/condition_spinner" 
       ></Spinner> 


      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/body_style" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 

      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/body_type_spinner" 
       ></Spinner> 

      <!-- odo meter --> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 

       > 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/km" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="*" 
        android:textSize="13sp" 
        /> 
      </LinearLayout> 

      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/Edit_Square" 
       android:id="@+id/odo_et" 
       android:cursorVisible="true" 
       android:inputType="number" 
       android:textSize="13sp" 
       android:textCursorDrawable="@null" 
       /> 

      <!-- engine size--> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/engine_size" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 
      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/engine_size_spinner" 
       ></Spinner> 

      <!-- transimssion --> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/transmission" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="*" 
        /> 
      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/transmission_spinner" 
       ></Spinner> 

      <!-- fuel type --> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/fuel_type" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="*" 
        /> 
      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/fuel_type_spinner" 
       ></Spinner> 

<!-- drive train--> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/drive_train" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 

      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/drive_train_spinner" 
       ></Spinner> 

      <!-- engine capacity --> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/eng_cap" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 

      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/engine_capacity_spinner" 
       ></Spinner> 

      <!-- exterior color--> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/ext_color" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="*" 
        /> 
      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/exterior_color_spinner" 
       ></Spinner> 

      <!-- interior color --> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/int_color" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="*" 
        /> 
      </LinearLayout> 

      <Spinner 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       style="@style/spinner_style" 
       android:id="@+id/interior_color_spinner" 
       ></Spinner> 

      <!-- waranty --> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="5dp"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/waranty" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       > 
       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 

        > 

        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_marginStart="5dp" 
         android:id="@+id/yes" 
         android:layout_toEndOf="@+id/yes_check" 
         android:paddingTop="2dp" 
         android:text="@string/yes" 
         android:textSize="11sp" 
         android:layout_centerVertical="true" 
         /> 

        <CheckBox 
         android:id="@+id/yes_check" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignParentStart="true" 
         android:checked="false" 

         android:gravity="left" 
         android:lineSpacingExtra="10dp" 
         android:textColor="@color/blue" 

         android:theme="@style/CustomStyledRadioButton" /> 

       </RelativeLayout> 
       <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginStart="20dp" 
        > 

        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_marginStart="5dp" 
         android:id="@+id/no" 
         android:layout_toEndOf="@+id/no_check" 
         android:paddingTop="2dp" 
         android:text="@string/no" 
         android:textSize="11sp" 
         android:layout_centerVertical="true" 
         /> 

        <CheckBox 
         android:id="@+id/no_check" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignParentStart="true" 
         android:checked="false" 

         android:gravity="left" 
         android:lineSpacingExtra="10dp" 
         android:textColor="@color/blue" 

         android:theme="@style/CustomStyledRadioButton" /> 

       </RelativeLayout> 
      </LinearLayout> 


      <!-- waranty_extra --> 


      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:id="@+id/waranty_extra" 
       android:visibility="gone" 
       > 
       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 

        > 
        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/waranty_exipre_date" 
         style="@style/BoldStyle" 
         android:textSize="13sp" 
         android:layout_marginTop="5dp" 
         android:layout_marginBottom="5dp" 
         /> 
       </LinearLayout> 

       <EditText 
        android:focusable="false" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        style="@style/Edit_Square" 
        android:id="@+id/waranty_exp_et" 
        android:inputType="date" 
        android:textSize="13sp" 
        android:textCursorDrawable="@null" 
        /> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 

        > 
        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/waranty_expire_km" 
         style="@style/BoldStyle" 
         android:textSize="13sp" 
         android:layout_marginTop="5dp" 
         android:layout_marginBottom="5dp" 
         /> 
       </LinearLayout> 

       <EditText 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        style="@style/Edit_Square" 
        android:id="@+id/waranty_exp_km_et" 
        android:cursorVisible="true" 
        android:inputType="number" 
        android:textSize="13sp" 
        android:textCursorDrawable="@null" 
        /> 
      </LinearLayout> 


      <!-- description en--> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:id="@+id/desc_wrap_en" 

      > 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 

       > 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/description_en" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 
      </LinearLayout> 


      <EditText 
       android:id="@+id/desc_et" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/square_border_grey" 
       android:gravity="top" 
       android:minLines="6" 
       android:textCursorDrawable="@null" 
       android:textSize="13sp" 
       android:padding="5dp" 
       android:textColorHighlight="@color/colorSubSecondary" 
       /> 
</LinearLayout> 

      <!-- description ar --> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:id="@+id/desc_wrap" 
       android:visibility="gone" 
       > 
       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="horizontal" 

        > 
        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="@string/description_ar" 
         style="@style/BoldStyle" 
         android:textSize="13sp" 
         android:layout_marginTop="5dp" 
         android:layout_marginBottom="5dp" 
         /> 
       </LinearLayout> 

       <EditText 
        android:id="@+id/desc_et_ar" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@drawable/square_border_grey" 
        android:gravity="top" 
        android:minLines="6" 
        android:textCursorDrawable="@null" 
        android:textSize="13sp" 
        android:padding="5dp" 
        /> 
      </LinearLayout> 

      <!-- seller comments --> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/seller_comments_wrap_en" 
      android:orientation="vertical" 
      > 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 

       > 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="@string/seller_comment_en" 
        style="@style/BoldStyle" 
        android:textSize="13sp" 
        android:layout_marginTop="5dp" 
        android:layout_marginBottom="5dp" 
        /> 

      </LinearLayout> 

      <EditText 
       android:id="@+id/seller_comments_et" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/square_border_grey" 
       android:gravity="top" 
       android:minLines="6" 
       android:textCursorDrawable="@null" 
       android:textSize="13sp" 
       android:padding="5dp" 
       /> 

</LinearLayout> 


      <Button 

       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/submit_btn" 
       android:text="@string/continue_txt" 
       android:background="@drawable/btn_selector_primary" 
       android:textColor="@color/white" 
       android:layout_marginTop="-5dp" 
       /> 
      <View 
       android:id="@+id/extra_view" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:visibility="gone" 
       /> 

     </LinearLayout> 

    </android.support.v4.widget.NestedScrollView> 

</RelativeLayout> 

回答

0

试试下面的代码

mSpinner.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 

      /// hide keyboard 
       InputMethodManager imm=(InputMethodManager)getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); 
       return false; 
      } 
     }) ;