2016-04-24 2 views
5

У меня есть проблема, которая, кажется, влияет только на версии Android 4.x и может быть также специфичной для устройства (т. Е. Она не существует на моем Huawei [email protected], но существует на Samsung [email protected]). У меня есть ScrollView, который содержит RelativeLayout, который имеет 4 CardView s. Теперь на некоторых устройствах 4.x событие прокрутки просто не происходит, когда я пытаюсь прокручивать начало с карты. Если я коснусь маленькой прокладки между картами или выше первой карты (а не между любыми двумя) и экраном устройства, я могу прокручивать содержимое.ScrollView внутри ViewPager не прокручивается на Android 4.x

<?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="match_parent" 
    android:fillViewport="true"> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/tools" 
        xmlns:card_view="http://schemas.android.com/apk/res-auto" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" 
        android:padding="@dimen/activity_horizontal_margin"> 

     <android.support.v7.widget.CardView 
      android:id="@+id/metricsContainerCard" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      app:cardElevation="2dp" 
      card_view:cardUseCompatPadding="true"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:padding="10dp"> 

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

        <ImageView 
         android:layout_width="20dp" 
         android:layout_height="20dp" 
         android:layout_gravity="center_vertical" 
         android:layout_marginRight="5dp" 
         android:src="@drawable/metrics"/> 

        <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/metrics" 
         android:textSize="20sp"/> 
       </LinearLayout> 


       <View 
        android:layout_width="match_parent" 
        android:layout_height="1dp" 
        android:background="@color/projectCircleBackgroundShadow"/> 

      </LinearLayout> 

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

     <android.support.v7.widget.CardView 
      android:id="@+id/warningsContainerCard" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:layout_below="@id/metricsContainerCard" 
      app:cardElevation="2dp" 
      card_view:cardUseCompatPadding="true"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:padding="10dp"> 

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

        <ImageView 
         android:layout_width="20dp" 
         android:layout_height="20dp" 
         android:layout_gravity="center_vertical" 
         android:layout_marginRight="5dp" 
         android:src="@drawable/bug_color"/> 

        <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/warnings" 
         android:textSize="20sp"/> 
       </LinearLayout> 


       <View 
        android:layout_width="match_parent" 
        android:layout_height="1dp" 
        android:background="@color/projectCircleBackgroundShadow"/> 

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

     <android.support.v7.widget.CardView 
      android:id="@+id/topWarningsContainerCard" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/warningsContainerCard" 
      android:layout_marginTop="10dp" 
      app:cardElevation="2dp" 
      card_view:cardUseCompatPadding="true"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:padding="10dp"> 

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

        <ImageView 
         android:layout_width="20dp" 
         android:layout_height="20dp" 
         android:layout_gravity="center_vertical" 
         android:layout_marginRight="5dp" 
         android:src="@drawable/top_warnings"/> 

        <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/topWarnings" 
         android:textSize="20sp"/> 
       </LinearLayout> 


       <View 
        android:layout_width="match_parent" 
        android:layout_height="1dp" 
        android:background="@color/projectCircleBackgroundShadow"/> 

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

     <android.support.v7.widget.CardView 
      android:id="@+id/topCriticalItemsContainerCard" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/topWarningsContainerCard" 
      android:layout_marginTop="10dp" 
      app:cardElevation="2dp" 
      card_view:cardUseCompatPadding="true"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:padding="10dp"> 

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

        <ImageView 
         android:layout_width="20dp" 
         android:layout_height="20dp" 
         android:layout_gravity="center_vertical" 
         android:layout_marginRight="5dp" 
         android:src="@drawable/top_critical_items"/> 

        <TextView 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:text="@string/topCriticalItems" 
         android:textSize="20sp"/> 

       </LinearLayout> 


       <View 
        android:layout_width="match_parent" 
        android:layout_height="1dp" 
        android:background="@color/projectCircleBackgroundShadow"/> 

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

Нет проблем на Android 5.x и 6.x.

EDIT

кажется, что проблема не связана исключительно с CardView, поскольку у меня есть еще один макет, и он также не прокручивается даже тогда, когда я перетащить на экран с помощью настраиваемого представления:

<ScrollView 
    android:id="@+id/scrollView" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    tools:context=".projects.details.ProjectDetailsActivity_"> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:tools="http://schemas.android.com/tools" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" 
        android:padding="@dimen/activity_horizontal_margin"> 


     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/projectName" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="16dp" 
       android:ellipsize="none" 
       android:gravity="center_horizontal" 
       android:text="Project name" 
       android:textSize="24sp"/> 

      <c.f.q.a.projects.details.components.widgets.ProjectDetailWidget 
       android:id="@+id/projectDetailWidget" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_gravity="center"/> 
     </LinearLayout> 

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

      <android.support.v7.widget.CardView 
       android:id="@+id/qualityTimelineCard" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       app:cardElevation="2dp" 
       card_view:cardUseCompatPadding="true"> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" 
        android:padding="10dp"> 

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

         <ImageView 
          android:id="@+id/flipQualityTimelineButton" 
          android:layout_width="30dp" 
          android:layout_height="30dp" 
          android:layout_marginRight="5dp" 
          android:src="@drawable/flip_to_cost"/> 

         <TextView 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:ellipsize="end" 
          android:lines="1" 
          android:text="@string/project_timeline_title" 
          android:textSize="16dp"/> 
        </LinearLayout> 

        <ProgressBar 
         android:id="@+id/projectQualityTimelineProgressBar" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         /> 

        <com.github.mikephil.charting.charts.LineChart 
         android:id="@+id/projectQualityTimeline" 
         android:layout_width="match_parent" 
         android:layout_height="200dp" 
         android:layout_marginTop="16dp" 
         android:tag="@string/project_chart_tag" 
         android:visibility="gone"/> 
       </LinearLayout> 
      </android.support.v7.widget.CardView> 

      <android.support.v7.widget.CardView 
       android:id="@+id/costTimelineCard" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:visibility="gone" 
       app:cardElevation="2dp" 
       card_view:cardUseCompatPadding="true"> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" 
        android:padding="10dp"> 

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

         <ImageView 
          android:id="@+id/flipCostTimelineButton" 
          android:layout_width="30dp" 
          android:layout_height="30dp" 
          android:layout_marginRight="5dp" 
          android:src="@drawable/flip_to_quality"/> 

         <TextView 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:ellipsize="end" 
          android:lines="1" 
          android:text="@string/project_cost_timeline_title" 
          android:textSize="16dp"/> 
        </LinearLayout> 


        <ProgressBar 
         android:id="@+id/projectCostTimelineProgressBar" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center" 
         /> 

        <com.github.mikephil.charting.charts.LineChart 
         android:id="@+id/projectCostTimeline" 
         android:layout_width="match_parent" 
         android:layout_height="200dp" 
         android:layout_marginTop="16dp" 
         android:tag="@string/project_chart_tag" 
         android:visibility="gone"/> 
       </LinearLayout> 
      </android.support.v7.widget.CardView> 

     </LinearLayout> 

     <android.support.v7.widget.CardView 
      android:id="@+id/vcsChangeCard" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:layout_weight="1" 
      app:cardElevation="2dp" 
      card_view:cardUseCompatPadding="true"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="left" 
       android:orientation="vertical" 
       android:padding="10dp"> 

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

        <ImageView 
         android:id="@+id/expandVcsChangeButton" 
         android:layout_width="28dp" 
         android:layout_height="28dp" 
         android:layout_marginRight="5dp" 
         android:src="@drawable/expand_chart"/> 

        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center_vertical" 
         android:ellipsize="end" 
         android:maxLines="2" 
         android:text="@string/project_vcschange_title" 
         android:textSize="16sp"/> 
       </LinearLayout> 

       <ProgressBar 
        android:id="@+id/vcsChangeProgressBar" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center"/> 

       <com.github.mikephil.charting.charts.BarChart 
        android:id="@+id/projectVcsChange" 
        android:layout_width="match_parent" 
        android:layout_height="175dp" 
        android:layout_marginTop="16dp" 
        android:tag="@string/project_chart_tag" 
        android:visibility="gone"/> 
      </LinearLayout> 
     </android.support.v7.widget.CardView> 

     <android.support.v7.widget.CardView 
      android:id="@+id/dtnosChangeCard" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:layout_weight="1" 
      app:cardElevation="2dp" 
      card_view:cardUseCompatPadding="true"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="right" 
       android:orientation="vertical" 
       android:padding="10dp"> 

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

        <ImageView 
         android:id="@+id/expandDtnosChangeButton" 
         android:layout_width="28dp" 
         android:layout_height="28dp" 
         android:layout_marginRight="5dp" 
         android:src="@drawable/expand_chart"/> 

        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center_vertical" 
         android:ellipsize="end" 
         android:maxLines="2" 
         android:text="@string/project_systemchange_title" 
         android:textSize="16sp"/> 
       </LinearLayout> 

       <ProgressBar 
        android:id="@+id/dtnosChangeProgressBar" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center"/> 

       <com.github.mikephil.charting.charts.BarChart 
        android:id="@+id/projectDtnosChange" 
        android:layout_width="match_parent" 
        android:layout_height="175dp" 
        android:layout_marginTop="16dp" 
        android:tag="@string/project_chart_tag" 
        android:visibility="gone"/> 
      </LinearLayout> 
     </android.support.v7.widget.CardView> 

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

      <android.support.v7.widget.CardView 
       android:id="@+id/sensorNodeCard" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:layout_weight="1" 
       app:cardElevation="2dp" 
       card_view:cardUseCompatPadding="true"> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:gravity="left" 
        android:orientation="vertical" 
        android:padding="10dp"> 

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

         <ImageView 
          android:id="@+id/expandSensornodeButton" 
          android:layout_width="28dp" 
          android:layout_height="28dp" 
          android:layout_marginRight="5dp" 
          android:src="@drawable/expand_chart"/> 

         <TextView 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:ellipsize="end" 
          android:maxLines="2" 
          android:text="@string/project_sensornode_title" 
          android:textSize="16sp"/> 
        </LinearLayout> 


        <ProgressBar 
         android:id="@+id/sensorNodeProgressBar" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center"/> 

        <com.github.mikephil.charting.charts.RadarChart 
         android:id="@+id/sensorNodeChart" 
         android:layout_width="match_parent" 
         android:layout_height="175dp" 
         android:layout_marginTop="16dp" 
         android:tag="@string/project_chart_tag" 
         android:visibility="gone"/> 
       </LinearLayout> 
      </android.support.v7.widget.CardView> 

      <android.support.v7.widget.CardView 
       android:id="@+id/aggregateNodeCard" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:layout_weight="1" 
       app:cardElevation="2dp" 
       card_view:cardUseCompatPadding="true"> 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:orientation="vertical" 
        android:padding="10dp"> 

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

         <ImageView 
          android:id="@+id/expandAggregateButton" 
          android:layout_width="28dp" 
          android:layout_height="28dp" 
          android:layout_marginRight="5dp" 
          android:src="@drawable/expand_chart"/> 

         <TextView 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:layout_gravity="center_vertical" 
          android:ellipsize="end" 
          android:maxLines="2" 
          android:text="@string/project_aggregatenode_title" 
          android:textSize="16sp"/> 

        </LinearLayout> 

        <ProgressBar 
         android:id="@+id/aggregateNodeProgressBar" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_gravity="center"/> 

        <com.github.mikephil.charting.charts.RadarChart 
         android:id="@+id/aggregateNodeChart" 
         android:layout_width="match_parent" 
         android:layout_height="175dp" 
         android:layout_marginTop="16dp" 
         android:tag="@string/project_chart_tag" 
         android:visibility="gone"/> 
       </LinearLayout> 
      </android.support.v7.widget.CardView> 
     </LinearLayout> 
    </LinearLayout> 
</ScrollView> 

я добавил полный макет, а также здесь изображение для осветления (я обозначил прокрутку области, которые я могу перетащить):

scrollable areas

EDIT2

Может быть, это также важно, чтобы эти макеты фрагментов внутри ViewPager. Возможно ли, что ViewPager предотвращает ScrollView (и любые другие виды внутри него), получая фокусировку/обработку событий касания? Код для моего ViewPager это:

<android.support.v4.view.ViewPager 
    android:id="@+id/projectPager" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

EDIT3

Кажется, что проблема должна быть с ViewPager + (Nested)ScrollView (я пытался обменять обычную ScrollView с этим, но безуспешно). Я создал фиктивный макет для моего фрагмента, который только хозяйничает родитель NestedScrollView, а LinearLayout и многая крупной TextView ей это нравится:

<android.support.v4.widget.NestedScrollView 
android:id="@+id/scrollView" 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:card_view="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".projects.details.ProjectDetailsActivity_"> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       xmlns:tools="http://schemas.android.com/tools" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" 
       android:padding="@dimen/activity_horizontal_margin"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="16dp" 
     android:ellipsize="none" 
     android:gravity="center_horizontal" 
     android:text="Project name" 
     android:textSize="80sp"/> 

... <!-- more TextViews come here --> 

... и прокрутка тоже не работает! Только на самом краю экрана, как и раньше. Я понятия не имею, как это может случиться ...

+0

От вашего редактирования кажется, что это не связано с CardView - возможно, вы могли бы переиздать, чтобы опустить CardView, и предоставить вместо этого дополнительную информацию о остальной части вашей установки. – ataulm

+0

Вы пытались установить 'android: clickable =" true "и' android: focusable = "true" 'атрибуты' CardView'? – fillobotto

+0

Да, я попробовал их, не повезло. Я редактировал свой пост с более подробной информацией, может быть, это может помочь. – Sleeper9

ответ

2

Решенный! У меня была точно такая же проблема. Вероятно, вы используете анимацию PageTransformer ViewPager.

Отключение пользовательской страницы трансформатор для < Android 4.1 решить ее:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { 
     // there are problems with this on 4.0.3, probably also on 4.1 
     viewPager.setPageTransformer(true, new DepthPageTransformer()); 
    } 

Ваш пост и исследование спасло меня много времени, спасибо.

ДРУГОЕ РЕШЕНИЕ:

Если вы любите анимацию, вы также можете попробовать изменить свой DepthPageTransformer к этому: https://stackoverflow.com/a/28214802/1310343c

+0

Я не могу в это поверить ... Много-много спасибо, это решило мою проблему! :) – Sleeper9

-1

Ваш ScrollView должны match_parent height и первый ребенок Scrollview (LinearLayout) должен иметь wrap_content высота

+0

Я пробовал это ранее (я также оставил «андроид: ориентация =« вертикаль »в моем примере по ошибке), но не помог. В настоящее время я пытаюсь использовать Genymotion Google Nexus [email protected] – Sleeper9

+0

@ Sleeper9 даст ваш xml макет завершен. –

+0

Я отредактировал свой пост, добавил полные макеты и изображение для уточнения! – Sleeper9

2

Вы правы, 2 прокруткой управления конкурируют друг с другом.

Вместо этого используйте библиотеку поддержки NestedScrollView. Он предназначен для решения проблем такого типа.

Она имеет много усовершенствований, которые позволяют ему работать с другим прокручивать управление, в том числе ViewPager, RecyclerView (до тех пор, как вы называете .setNestedScrolling(true)) и CoordinatorLayout.

Исходя из вышеизложенного, я использую этот новый класс во всех экземплярах, а прокрутка в прокрутке работает отлично. Наш продукт работает с отлично работающими NestedScrollView элементами управления внутри ViewPager, некоторые со встроенными RecyclerView списками внутри них.

+1

Ну, я обменялся '' с '', но все же ничего не изменилось. :(Я также вызвал '.setNestedScrolling (true)'. Есть ли что-то, что мне нужно установить в XML-макете? – Sleeper9

+0

Хорошо, что это не помогло в этом случае. Оставлю это здесь в случае других читателей. так что каждый может редактировать и улучшать. –

+1

Но проблема должна быть где-то здесь ... Как я уже писал, мои другие представления внутри 'ScrollView' не реагируют на нажатия, замыкания и т. д., поэтому ViewPager должен каким-то образом потреблять жест. .. – Sleeper9

1

Для меня эта установка работала: У меня есть макет координатору, который имеет под вложенной Scrollview

<android.support.v4.widget.NestedScrollView 
    android:layout_marginTop="8dp" 
    android:fillViewport = "true" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <include layout="@layout/content_app_bar_search_patient_module"/> 

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

и <include layout="@layout/content_app_bar_search_patient_module"/> имеет ViewPager, который имеет фрагмент, который снова содержит вложенную Scrollview

<android.support.v4.widget.NestedScrollView 

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.support.v4.widget.NestedScrollView> 
Смежные вопросы