3

scrollen Ich habe eine NestedScrollview innerhalb von Fragmenten und Aktivitäten als übergeordnete mit einer Collapsed-Symbolleiste, mit Viewpager, das Problem ist, dass die geschachtelte scrollview nicht scrollen, um die vollständige anzuzeigen UI, wenn ich einen Fehler mit textinputlayout zeigen,Nested Scrollview ist nicht in der Lage, seinen gesamten Inhalt innerhalb viewpager mit kollabierenden Tollbar

nach mit TextInput- Layout der Ansicht (Button) immer Fehler zeigt sich die Aktivität Layout ist wie folgt,

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true"> 

<android.support.v4.view.ViewPager 
    android:id="@+id/viewpager" 
    style="@style/overscroll_remove" 
    android:background="@color/color_white" 
    android:paddingLeft="@dimen/dimen_editext_padding" 
    android:paddingRight="@dimen/dimen_editext_padding" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 


<android.support.design.widget.AppBarLayout 
    android:id="@+id/appBar" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/dimen_collapsing" 
    android:fitsSystemWindows="true" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:contentScrim="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      app:tabMode="fixed" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:tabIndicatorColor="@color/color_00cdb" 
      app:tabIndicatorHeight="@dimen/dimen_tab_indicator_height" 
      app:tabSelectedTextColor="@color/color_2323"/> 

     <include layout="@layout/layout_toolbar" 
      app:layout_collapseMode="pin" /> 


    </android.support.design.widget.CollapsingToolbarLayout> 

</android.support.design.widget.AppBarLayout> 
</android.support.design.widget.CoordinatorLayout> 

Stil für viewpager und scrollivew, keine wahr nie keine

Dies ist das Layout meines Anmeldebildschirm ist, innerhalb NestedScrollview, die bewegten sich nicht, um es in voller Länge ist, bis ein Fehler mit textinputlayout gezeigt, Screenshot als Referenz beigefügt ist & Layout wie folgt,

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.NestedScrollView 
xmlns:android="http://schemas.android.com/apk/res/android" 
style="@style/overscroll_remove" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 

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

    <LinearLayout 
     android:id="@+id/fs_lay_container" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_margin="@dimen/dimen_layout_margin" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/d_drawable_rectangel_box"> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/fs_tl_fName" 
      style="@style/textInputLayout" 
      app:errorTextAppearance="@style/error_appearance" 
      app:hintTextAppearance="@style/hint_appearance"> 

      <android.support.design.widget.TextInputEditText 
       style="@style/edittext" 
       android:tag="@string/s_signup_hint_fName" 
       android:drawableLeft="@drawable/di_user_icon" 
       android:hint="@string/s_signup_hint_fName" /> 

     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/fs_tl_lName" 
      style="@style/textInputLayout" 
      app:errorTextAppearance="@style/error_appearance" 
      app:hintTextAppearance="@style/hint_appearance"> 

      <android.support.design.widget.TextInputEditText 
       style="@style/edittext" 
       android:tag="@string/s_signup_hint_lName" 
       android:drawableLeft="@drawable/di_user_icon" 
       android:hint="@string/s_signup_hint_lName" /> 

     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/fs_tl_email" 
      style="@style/textInputLayout" 
      app:errorTextAppearance="@style/error_appearance" 
      app:hintTextAppearance="@style/hint_appearance"> 

      <android.support.design.widget.TextInputEditText 
       style="@style/edittext" 
       android:tag="@string/s_signup_hint_email" 
       android:drawableLeft="@drawable/di_email" 
       android:hint="@string/s_signup_hint_email" /> 

     </android.support.design.widget.TextInputLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_vertical"> 

      <cl.countrycodepicker.CountryCodePicker 
       android:visibility="gone" 
       android:id="@+id/fs_tl_ccp" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       app:defaultNameCode="IN" /> 

      <android.support.design.widget.TextInputLayout 
       style="@style/textInputLayout" 
       android:id="@+id/fs_tl_countryCode" 
       android:clickable="true" 
       app:errorTextAppearance="@style/error_appearance" 
       app:hintTextAppearance="@style/hint_appearance"> 

       <android.support.design.widget.TextInputEditText 
        style="@style/edittext" 
        android:id="@+id/fs_ed_countryCode" 
        android:drawableLeft="@drawable/di_mobile" 
        android:clickable="true" 
        android:tag="@string/s_signup_hint_countryCode" 
        android:drawableRight="@drawable/di_drop_down" 
        android:hint="@string/s_signup_hint_countryCode" /> 
      </android.support.design.widget.TextInputLayout> 
     </LinearLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/fs_tl_phone" 
      style="@style/textInputLayout" 
      app:errorTextAppearance="@style/error_appearance" 
      app:hintTextAppearance="@style/hint_appearance"> 

      <android.support.design.widget.TextInputEditText 
       style="@style/edittext" 
       android:tag="@string/s_signup_hint_phone" 
       android:inputType="number" 
       android:maxLength="@integer/s_phone_length" 
       android:drawableLeft="@drawable/di_mobile" 
       android:hint="@string/s_signup_hint_phone" /> 
     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/fs_tl_password" 
      style="@style/textInputLayout" 
      app:errorTextAppearance="@style/error_appearance" 
      app:hintTextAppearance="@style/hint_appearance"> 

      <android.support.design.widget.TextInputEditText 
       style="@style/edittext" 
       android:inputType="textPassword" 
       android:tag="@string/s_signup_hint_password" 
       android:drawableLeft="@drawable/di_password" 
       android:hint="@string/s_signup_hint_password" /> 
     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/fs_tl_cPassword" 
      style="@style/textInputLayout" 
      app:errorTextAppearance="@style/error_appearance" 
      app:hintTextAppearance="@style/hint_appearance"> 

      <android.support.design.widget.TextInputEditText 
       style="@style/edittext" 
       android:inputType="textPassword" 
       android:drawableLeft="@drawable/di_password" 
       android:hint="@string/s_signup_hint_cPassword" /> 
     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/fs_tl_address" 
      style="@style/textInputLayout" 
      app:errorTextAppearance="@style/error_appearance" 
      app:hintTextAppearance="@style/hint_appearance"> 

      <android.support.design.widget.TextInputEditText 
       style="@style/edittext" 
       android:tag="@string/s_signup_hint_address" 
       android:id="@+id/fs_ed_address" 
       android:drawableLeft="@drawable/di_address" 
       android:hint="@string/s_signup_hint_address" /> 
     </android.support.design.widget.TextInputLayout> 

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

      <android.support.design.widget.TextInputLayout 
       android:id="@+id/fs_tl_promo" 
       android:layout_centerVertical="true" 
       style="@style/textInputLayout" 
       android:layout_toLeftOf="@+id/fs_tv_optional" 
       app:errorTextAppearance="@style/error_appearance" 
       app:hintTextAppearance="@style/hint_appearance"> 

      <android.support.design.widget.TextInputEditText 
       style="@style/edittext" 
       android:imeOptions="actionDone" 
       android:id="@+id/fs_ed_promo" 
       android:background="@color/color_tranparent" 
       android:drawableLeft="@drawable/di_optional" 
       android:hint="@string/s_signup_hint_rererral" /> 
      </android.support.design.widget.TextInputLayout> 

      <TextView style="@style/textView" 
       android:id="@+id/fs_tv_optional" 
       android:paddingTop="@dimen/dimen_drawable_padding" 
    android:textAppearance="@style/TextAppearance.AppCompat.Caption" 
       android:layout_alignParentRight="true" 
       android:layout_width="wrap_content" 
       android:layout_centerVertical="true" 
       android:text="@string/s_signup_optional"/> 
     </RelativeLayout> 
    </LinearLayout> 

    <TextView style="@style/textView" 
     android:layout_below="@+id/fs_lay_container" 
     android:id="@+id/fs_tv_tCondition" 
     android:text="@string/s_signup_tCondition"/> 

    <Button style="@style/button" 
     android:layout_marginTop="@dimen/dimen_layout_margin" 
     android:layout_below="@id/fs_tv_tCondition" 
     android:id="@+id/fs_bt_save" 
     android:text="@string/s_signup"/> 
</RelativeLayout> 
</android.support.v4.widget.NestedScrollView> 

TextInput- Layout der verschiedenen Art wird wie folgt,

<style name="textInputLayout"> 
    <item name="android:textAppearance">@style/TextAppearance.AppCompat.Subhead</item> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
</style> 

<style name="error_appearance" parent="TextAppearance.AppCompat.Medium"> 
    <item name="android:textColor">@color/color_red</item> 
    <item name="android:textAppearance">@style/TextAppearance.AppCompat.Subhead</item> 
</style> 

<style name="hint_appearance" parent="TextAppearance.AppCompat.Small"> 
    <item name="android:textColor">@color/color_374</item> 
    <item name="android:textAppearance">@style/TextAppearance.AppCompat.Subhead</item> 
</style> 

EditExt Stil i s as,

<style name="edittext" parent="Base.Widget.AppCompat.EditText"> 
    <item name="android:drawablePadding">@dimen/dimen_drawable_padding</item> 
    <item name="android:singleLine">true</item> 
    <item name="android:padding">@dimen/dimen_editext_padding</item> 
    <item name="android:gravity">left</item> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
</style> 

das Layout der Anmeldungen zeigt folgt wie folgt, enthält eine Schaltfläche, die am unteren Rand des Bildschirms wird nicht vollständig angezeigt There is a button which is not fully shown inside nested scrollview

Antwort

0

Sie MyMeasuredViewPager verwenden können, und verwenden Sie diese in einem Ort Ihrer Ansicht Pager

public class MyMeasuredViewPager extends ViewPager { 
    public MyMeasuredViewPager(Context context) { 
     super(context); 
    } 

    public MyMeasuredViewPager(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 


    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     int height = 0; 
     for (int i = 0; i < getChildCount(); ++i) { 
      View child = getChildAt(i); 
      child.measure(widthMeasureSpec, 
        MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
      int h = child.getMeasuredHeight(); 
      if (h > height) { 
       height = h; 
      } 
     } 

     heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
    } 
} 
Verwandte Themen