Неисправность прокрутки 2 ScrollViews на FrameLayout - PullRequest
2 голосов
/ 31 мая 2011

У меня есть FrameLayout , в котором ScrollView является единственным дочерним элементом. Во время выполнения я надуваю RelativeLayout , который имеет ScrollView внутри, и добавляю его к FrameLayout (этот дочерний вид теперь перекрывает предыдущий ScrollView). Я использовал LockableScrollView в качестве первого дочернего элемента FrameLayout, поэтому я могу отключить его прокрутку, установив для свойства scrollable значение false, для фокусируемых и интерактивных свойств также задается значение false после новый дочерний элемент добавляется в FrameLayout. Но я все еще не могу прокрутить новый ScrollView. Есть указатели?

Ниже приведен макет Root.

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frame"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <RelativeLayout
        android:id="@+id/relative_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/questions_bg">

        <ImageView
            android:id="@+id/questions_header"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:scaleType="fitXY"
            android:src="@drawable/header_bg" />

        <com.package.ui.LockableScrollView
            android:id="@+id/question_scrollview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@id/questions_header"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:scrollbarStyle="insideOverlay"
            android:scrollbarFadeDuration="0"
            android:fillViewport="true">

            <!-- Some more views -->

        </com.package.ui.LockableScrollView>    
    </RelativeLayout>
</FrameLayout>

Ниже приведен дочерний макет, который раздувается во время выполнения и добавляется в FrameLayout.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|center_horizontal"
    android:layout_marginBottom="20dp">

    <ImageView
        android:id="@+id/q_map_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:src="@drawable/en_question_map_header" />

    <ImageView
        android:id="@+id/q_map_bg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/q_map_header"
        android:src="@drawable/question_map_content" />

    <ImageView
        android:id="@+id/q_map_footer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@id/q_map_bg"
        android:paddingBottom="50dp"
        android:src="@drawable/en_question_map_footer" />

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@id/q_map_header"
        android:layout_above="@id/q_map_footer"
        android:layout_marginLeft="28dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="14dp"
        android:layout_marginBottom="14dp"
        android:layout_alignLeft="@id/q_map_header"
        android:layout_alignRight="@id/q_map_header"
        android:fillViewport="true" >

        <GridView
            android:id="@+id/q_map_grid"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:numColumns="5"
            android:verticalSpacing="8dp"
            android:horizontalSpacing="8dp"
            android:stretchMode="columnWidth"
            android:gravity="center_horizontal" />
    </ScrollView>
</RelativeLayout>

1 Ответ

0 голосов
/ 13 августа 2011

Нельзя поместить прокручиваемый контейнер (Здесь GridView) в другой прокручиваемый контейнер (Здесь ScrollView).

...