5

Bazı bilgileri içeren kartları görüntülemek için bir CoordinatorLayout ve RecyclerView içeren bir NestedScrollView (varsayılan Kaydırma Etkinliğinin parçası) var. Düzen, kartların çok fazla olması durumunda ekranın kapalı olmasına izin verecek şekilde tasarlanmıştır ve kullanıcının onlara kaydırmasını sağlayın, ancak bazı sebeplerden ötürü kaydırma işlemi olması gerektiği gibi hareket etmeyecektir. Etrafıma baktım ve bir önceki soru scrollview (Android ScrollView disable Inertial scrolling) içinde intertial kaydırma devre dışı bırakma dedi, ben tam tersini yapmaya çalıştım:NestedScrollView (Android Studio) iç geçişini etkinleştirin

NestedScrollView mgScrollView = (NestedScrollView) findViewById(R.id.my_games_scroll_view); 
mgScrollView.setSmoothScrollingEnabled(true); 

Ama bu onu başarmak vermedi. MgScrollView.setVerticalScrollBarEnabled (true) değerini test ettim; Kodu doğru görüntüye uygulayıp uygulamadığımı görmek için kaydırma çubukları da görünmedi. Bu yüzden şimdi bu yöntemleri doğru görünüme uygulayıp uygulamam konusunda kafam karıştı, fakat başka bir ScrollView'im olmadığından, hatalı olduğum yerde olması gerektiğinden emin değilim. Xml'nin kendisinde kaydırma çubukları ekleyebileceğimi biliyorum, ancak atalet kaydırma için xml kodu bulamadım. Java veya xml ile atalet eklemek için bir yolu var mı? İşte

(CollapsingToolbarLayout ve FAB için kod barındıran activity_my_games.xml ile karıştırılmamalıdır) kartları için düzenleri nereye olduğu content_my_games.xml için kodudur

Teşekkür

<?xml version="1.0" encoding="utf-8"?> 
<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:id="@+id/my_games_scroll_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="com.example.abhinav.sportswowandroid.MyGamesActivity" 
tools:showIn="@layout/activity_my_games"> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp" 
    android:paddingTop="16dp" 
    android:paddingBottom="16dp" 
    tools:context=".MyGamesActivity"> 

    <android.support.design.widget.CoordinatorLayout 
      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_parent" 
      android:layout_height="match_parent" 
      android:fitsSystemWindows="true" 
      tools:context=".MyGamesActivity" 
      /> 

    <android.support.v7.widget.RecyclerView 
      android:id="@+id/recycler_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" 
      /> 

    <android.support.design.widget.AppBarLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      /> 
    </RelativeLayout> 
</android.support.v4.widget.NestedScrollView> 

cevap

4

Eski soru, ama bu kendime koştum. Bu, benim için çözdü:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 
recyclerView.setNestedScrollingEnabled(false);