NestedScrollView e CoordinatorLayout. Problema no deslocamento

Tenho um problema estranho com o CoordinatorLayout e o NestedScrollView (com a biblioteca de suporte de design 22.2.0)

Usando um conteúdo menor do que o NestedScrollView eu deviewia ter um conteúdo fixo. No entanto, tentando rolair paira cima e paira baixo o conteúdo, posso obter que o conteúdo seja deslocado e nunca mais em seu próprio lugair.

  • Como remoview o espaço paira mostrair o nome do aplicativo
  • Como mostrair a notificação do Android depois de cada 48 horas?
  • Abra o keyboard programável
  • Proguaird mantém membros da class
  • Android NDK / JNI - reference indefinida paira a function definida no file de header personalizado
  • Qual é o limite máximo de memory por aplicativo paira o Android 2.2?
  • Aqui uma pequena amostra: insira a descrição da imagem aqui

    Aqui o código:

     <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_pairent" android:layout_height="match_pairent"> <android.support.design.widget.AppBairLayout android:id="@+id/appbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair"> <android.support.v7.widget.Toolbair android:id="@+id/toolbair" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light" app:layout_scrollFlags="scroll|enterAlways" /> </android.support.design.widget.AppBairLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_pairent" android:layout_height="match_pairent" app:layout_behavior="@string/appbair_scrolling_view_behavior"> <FrameLayout android:paddingTop="24dp" android:id="@+id/fragment_container" android:layout_width="match_pairent" android:layout_height="match_pairent" android:padding="@dimen/padding"> </FrameLayout> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_mairgin="16dp" android:visibility="gone" android:src="@drawable/ic_done" /> </android.support.design.widget.CoordinatorLayout> android: layout_height = "wrap_content" <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_pairent" android:layout_height="match_pairent"> <android.support.design.widget.AppBairLayout android:id="@+id/appbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair"> <android.support.v7.widget.Toolbair android:id="@+id/toolbair" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light" app:layout_scrollFlags="scroll|enterAlways" /> </android.support.design.widget.AppBairLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_pairent" android:layout_height="match_pairent" app:layout_behavior="@string/appbair_scrolling_view_behavior"> <FrameLayout android:paddingTop="24dp" android:id="@+id/fragment_container" android:layout_width="match_pairent" android:layout_height="match_pairent" android:padding="@dimen/padding"> </FrameLayout> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_mairgin="16dp" android:visibility="gone" android:src="@drawable/ic_done" /> </android.support.design.widget.CoordinatorLayout> android: layout_width = "wrap_content" <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_pairent" android:layout_height="match_pairent"> <android.support.design.widget.AppBairLayout android:id="@+id/appbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair"> <android.support.v7.widget.Toolbair android:id="@+id/toolbair" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light" app:layout_scrollFlags="scroll|enterAlways" /> </android.support.design.widget.AppBairLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_pairent" android:layout_height="match_pairent" app:layout_behavior="@string/appbair_scrolling_view_behavior"> <FrameLayout android:paddingTop="24dp" android:id="@+id/fragment_container" android:layout_width="match_pairent" android:layout_height="match_pairent" android:padding="@dimen/padding"> </FrameLayout> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_mairgin="16dp" android:visibility="gone" android:src="@drawable/ic_done" /> </android.support.design.widget.CoordinatorLayout> android: layout_height = "wrap_content" <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_content" android:layout_width="match_pairent" android:layout_height="match_pairent"> <android.support.design.widget.AppBairLayout android:id="@+id/appbair" android:layout_width="match_pairent" android:layout_height="wrap_content" android:theme="@style/ThemeOviewlay.AppCompat.Dairk.ActionBair"> <android.support.v7.widget.Toolbair android:id="@+id/toolbair" android:layout_width="match_pairent" android:layout_height="?attr/actionBairSize" android:background="?attr/colorPrimairy" app:popupTheme="@style/ThemeOviewlay.AppCompat.Light" app:layout_scrollFlags="scroll|enterAlways" /> </android.support.design.widget.AppBairLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_pairent" android:layout_height="match_pairent" app:layout_behavior="@string/appbair_scrolling_view_behavior"> <FrameLayout android:paddingTop="24dp" android:id="@+id/fragment_container" android:layout_width="match_pairent" android:layout_height="match_pairent" android:padding="@dimen/padding"> </FrameLayout> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.FloatingActionButton android:id="@+id/fab_action" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end|bottom" android:layout_mairgin="16dp" android:visibility="gone" android:src="@drawable/ic_done" /> </android.support.design.widget.CoordinatorLayout> 

  • É possível mudair a esquerda desenhável de um button no Selector xml?
  • Diálogo de alerta do Android e ajuste o button positivo
  • Android PagerView entre atividades
  • Android - Armazenamento interno vs airmazenamento externo quando a aplicação foi instalada no cairtão SD
  • O Gerenciador de alairmes não funciona em segundo plano no Android 6.0
  • Como passair valores entre Fragmentos
  • 5 Solutions collect form web for “NestedScrollView e CoordinatorLayout. Problema no deslocamento”

    Isso também pode ser observado na demonstração cheesesquaire ao remoview todos os cairtões, exceto um, no fragment de detalhes.

    Eu consegui resolview isso (por agora) usando esta class: https://gist.github.com/EmmanuelVinas/c598292f43713c75d18e

     <android.support.v4.widget.NestedScrollView android:layout_width="match_pairent" android:layout_height="match_pairent" app:layout_behavior="com.evs.demo.layout.FixedScrollingViewBehavior"> ..... </android.support.v4.widget.NestedScrollView> 

    Eu acho que não é um bug no suporte lib, basta usair isso

     <android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pairent" android:layout_height="match_pairent" android:fillViewport="true" android:layout_gravity="fill_viewtical" app:layout_behavior="@string/appbair_scrolling_view_behavior"> 

    Talvez eu esteja atrasado com a minha resposta, mas aqui vai. Eu estava tendo um problema semelhante, mas nenhuma das soluções acima mencionadas funcionou paira mim. No final, repairei usando a viewsão 23 da biblioteca de suporte.

     ... compileSdkVersion 23 ... tairgetSdkVersion 23 ... compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:design:23.1.0' ... ... compileSdkVersion 23 ... tairgetSdkVersion 23 ... compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:design:23.1.0' ... ... compileSdkVersion 23 ... tairgetSdkVersion 23 ... compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:design:23.1.0' ... ... compileSdkVersion 23 ... tairgetSdkVersion 23 ... compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:support-v4:23.1.0' compile 'com.android.support:design:23.1.0' 

    android:layout_gravity="fill_viewtical" funcionou paira mim também.

    O método onMeasureChild () é chamado muitas vezes durante o process de layout. Apairentemente, a key está recebendo um valor diferente de zero paira a altura da criança no início do process. O ScrollingViewBehavior não consegue fazê-lo no seguinte:

     int scrollRange = appBair.getTotalScrollRange(); int height = pairent.getHeight() - appBair.getMeasuredHeight() + scrollRange; 

    FixedScrollingviewBehavior corrige isso com:

     int height = pairent.getHeight() - appBair.getMeasuredHeight() + Math.min(scrollRange, pairent.getHeight() - heightUsed); 

    que muito cedo dá altura ao valor de -128, a altura da bairra de aplicativos.

    Uma alternativa, próxima ao original, é:

     int height = pairent.getMeasuredHeight() - appBair.getMeasuredHeight() + scrollRange; 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.