1

私は、TabLayoutとViewPagerでアクティビティを持っています。私は、ツールバーと3つのタブが崩壊した状態のアクティビティを必要とし、タブにはCardViewsが含まれていますが、カードビューやビューページはスクロールできません。ViewPagerとタブでのスクロールの問題

<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/city_detail_maincontent" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 

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

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

      <ImageView 
       android:id="@+id/city_detail_header" 
       android:layout_width="250dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:background="@drawable/imagen_detalle" 
       android:padding="16dp" 
       android:fitsSystemWindows="true" 
       android:scaleType="centerCrop" 
       app:layout_collapseMode="parallax" /> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbarPokemon" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:gravity="top" 
       android:minHeight="?attr/actionBarSize" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

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

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabsPokemon" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:layout_gravity="bottom" 
      app:tabIndicatorColor="@android:color/white" /> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/vpPokemon" 
     android:isScrollContainer="true" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

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

コードでは、フラグメント(ViewPagerAdapterを使用)とforeachタブをロードしますが、スクロールできません。

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:isScrollContainer="true"> 

     <android.support.v7.widget.CardView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="8dp"> 

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

       <TextView 
        android:id="@+id/tvTitleInfoPokemon" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:padding="8dp" 
        android:textSize="24dp" 
        android:text="Basic Info"/> 

       <TextView 
        android:id="@+id/tvPesoInfoPokemon" 
        android:layout_below="@+id/tvTitleInfoPokemon" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:padding="4dp" 
        android:text="Peso: 20kg"/> 

       <TextView 
        android:id="@+id/tvAlturaInfoPokemon" 
        android:layout_below="@+id/tvPesoInfoPokemon" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:padding="4dp" 
        android:text="Altura: 1m"/> 

      </RelativeLayout> 

     </android.support.v7.widget.CardView> 

     <android.support.v7.widget.CardView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="8dp"> 

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

       <TextView 
        android:id="@+id/tvTitleStatsPokemon" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:padding="8dp" 
        android:textSize="24dp" 
        android:text="Stats"/> 

       <LinearLayout 
        android:layout_below="@+id/tvTitleStatsPokemon" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_weight="1" 
        android:orientation="horizontal"> 
        <LinearLayout 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" 
         android:layout_weight="1"> 
         <TextView 
          android:id="@+id/hp" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="HP "/> 
         <TextView 
          android:id="@+id/attack" 
          android:layout_below="@+id/hp" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="Attack "/> 
         <TextView 
          android:id="@+id/defense" 
          android:layout_below="@+id/attack" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="Defense "/> 
         <TextView 
          android:id="@+id/specialattack" 
          android:layout_below="@+id/defense" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="Sp. Attack "/> 
         <TextView 
          android:id="@+id/specialdefense" 
          android:layout_below="@+id/specialattack" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="Sp. Defence "/> 
         <TextView 
          android:id="@+id/speed" 
          android:layout_below="@+id/specialdefense" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="Speed "/> 
         <TextView 
          android:id="@+id/total" 
          android:layout_below="@+id/speed" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:textStyle="bold" 
          android:text="Total "/> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" 
         android:layout_weight="1"> 
         <TextView 
          android:id="@+id/value_hp" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="25"/> 
         <TextView 
          android:id="@+id/value_attack" 
          android:layout_below="@+id/hp" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="74"/> 
         <TextView 
          android:id="@+id/value_defense" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="25"/> 
         <TextView 
          android:id="@+id/value_special_attack" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="25"/> 
         <TextView 
          android:id="@+id/value_special_defense" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="25"/> 
         <TextView 
          android:id="@+id/value_speed" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:text="25"/> 
         <TextView 
          android:id="@+id/value_total" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:textSize="15dip" 
          android:paddingBottom="5dip" 
          android:paddingLeft="2dip" 
          android:textStyle="bold" 
          android:text="25"/> 
        </LinearLayout> 

        <LinearLayout 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:orientation="vertical" 
         android:layout_weight="3"> 
         <ProgressBar 
          android:id="@+id/progressBar1" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:layout_gravity="center_horizontal" 
          style="?android:attr/progressBarStyleHorizontal" 
          android:progress="75" 
          android:max="255" 
          android:padding="4dip" 
          android:progressDrawable="@drawable/progressbarstats"/> 

         <ProgressBar 
          android:id="@+id/progressBar2" 
          android:layout_below="@+id/progressBar1" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:layout_gravity="center_horizontal" 
          style="?android:attr/progressBarStyleHorizontal" 
          android:progress="65" 
          android:max="255" 
          android:padding="4dp" 
          android:progressDrawable="@drawable/progressbarstats"/> 

         <ProgressBar 
          android:id="@+id/progressBar3" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:layout_gravity="center_horizontal" 
          style="?android:attr/progressBarStyleHorizontal" 
          android:progress="50" 
          android:max="255" 
          android:padding="4dp" 
          android:progressDrawable="@drawable/progressbarstats"/> 
         <ProgressBar 
          android:id="@+id/progressBar4" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:layout_gravity="center_horizontal" 
          style="?android:attr/progressBarStyleHorizontal" 
          android:progress="80" 
          android:max="255" 
          android:padding="4dp" 
          android:progressDrawable="@drawable/progressbarstats"/> 
         <ProgressBar 
          android:id="@+id/progressBar5" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:layout_gravity="center_horizontal" 
          style="?android:attr/progressBarStyleHorizontal" 
          android:progress="45" 
          android:max="255" 
          android:padding="4dp" 
          android:progressDrawable="@drawable/progressbarstats"/> 
         <ProgressBar 
          android:id="@+id/progressBar6" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:layout_gravity="center_horizontal" 
          style="?android:attr/progressBarStyleHorizontal" 
          android:progress="25" 
          android:max="255" 
          android:padding="4dp" 
          android:progressDrawable="@drawable/progressbarstats"/> 
        </LinearLayout> 

       </LinearLayout> 

      </RelativeLayout> 

     </android.support.v7.widget.CardView> 

    </LinearLayout> 
</ScrollView> 

おかげで は(私はScrollViewを試みたが、私はできなかった):

非スクロール可能なコンテンツのレイアウトはこれです!

答えて

1

ScrollViewの代わりにandroid.support.v4.widget.NestedScrollViewを使用すると、問題は解決されます。

2種類のスクロール可能なビューNestedScrollViewを使用することをおすすめします。これは、タッチイベントがScrollViewよりも優れているためです。 あなたの問題と同じgooglerの例であるthisもご覧ください。

+1

ありがとうございます!素晴らしい例。 –

+0

@FedericoBlumettoあなたが役に立ったら受け入れられるようにフラグを立てることができます;) – Amir