Прокрутка MapView и ExpandablelistView - PullRequest
0 голосов
/ 03 октября 2018

У меня проблемы с scrollview и nestedscrollview.Я пытаюсь сделать вид, где наверху есть карта, а под картой Google есть расширяемый вид списка.И я хочу прокрутить весь вид, чтобы карта Google была частью расширяемого списка.

Мой XML выглядит так

<?xml version="1.0" encoding="utf-8"?>

<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:id="@+id/htab_maincontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical"
android:theme="@style/WizyGeneralTheme"
tools:context=".fragments.ShoppingFragment">

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

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

        <com.google.android.gms.maps.MapView
            android:id="@+id/mapView"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            />

        <ExpandableListView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/elv_shops"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:nestedScrollingEnabled="false"
            android:groupIndicator="@null"
            android:background="@color/white"/>
    </LinearLayout>


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

Я пытался использовать вид прокрутки ив этом фрагменте кода вложенный вид прокрутки, но оба не работают.Когда я говорю, что nestedScrollingEnabled = true при расширяемом просмотре списка, прокручивается только просмотр списка, но не карта.У вас есть идеи, как это решить?Кстати, у меня есть похожее представление, но там я использую обзор переработчика вместо расширяемого списка просмотра, и это прекрасно работает.Итак, я думаю, что главная проблема - это расширение списка, но я не могу заменить его, потому что мой список должен расширяться.Или есть ли возможность обойти представление расширяемого списка?

Может быть, вам также понадобятся файлы макета из моего элемента в элементе списка расширяемого списка:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/section_shop_group"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white">

<ImageView
    android:id="@+id/iv_shop"
    android:layout_width="140dp"
    android:layout_height="140dp"
    android:src="@mipmap/img_default"
    android:scaleType="centerCrop"
    android:layout_alignParentStart="true"/>

<RatingBar
    android:id="@+id/rb_shop"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentBottom="true"
    android:isIndicator="true"
    android:scaleX="1"
    android:scaleY="1"
    android:transformPivotX="0dp"
    android:transformPivotY="0dp"
    android:layout_marginVertical="15dp"
    android:layout_marginHorizontal="15dp"
    android:numStars="5"
    android:stepSize="0.1"
    android:theme="@style/WizyGeneralTheme.RatingBar"/>

<TextView
    android:id="@+id/tv_shop_name"
    android:layout_toRightOf="@id/iv_shop"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="2"
    android:ellipsize="end"
    android:textStyle="bold"
    android:textSize="18dp"
    android:textColor="@color/black"
    android:layout_marginHorizontal="15dp"
    android:layout_marginTop="15dp"/>

<TextView
    android:id="@+id/tv_shop_address"
    android:layout_below="@id/tv_shop_name"
    android:layout_toRightOf="@id/iv_shop"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxLines="2"
    android:ellipsize="end"
    android:textSize="15dp"
    android:layout_marginHorizontal="15dp"/>

<TextView
    android:id="@+id/tv_shop_pricing"
    android:layout_toRightOf="@id/iv_shop"
    android:layout_alignParentBottom="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginHorizontal="15dp"
    android:layout_marginVertical="15dp"
    android:text="$$$$"
    android:textColor="@color/blue"
    />

<ImageView
    android:id="@+id/ivGroupIndicator"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/group_indicator"
    android:backgroundTint="@color/grey"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="10dp"
    android:layout_marginRight="10dp"/>

</RelativeLayout>

Сведения о группе (расширенная часть):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/section_shop_detail"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:padding="10dp">

<TextView
    android:id="@+id/tv_opening_hours"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<ImageButton
    android:id="@+id/btn_shop_website"
    android:layout_toLeftOf="@id/btn_shop_route"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:scaleType="fitCenter"
    android:background="@drawable/rectangle_round_corners"
    android:backgroundTint="@color/white"
    android:src="@mipmap/ic_website"
    android:tint="@color/blue"
    android:layout_marginHorizontal="10dp"
    android:onClick="onShoppingWebsiteButtonClicked"/>

<ImageButton
    android:id="@+id/btn_shop_route"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:scaleType="fitCenter"
    android:background="@drawable/rectangle_round_corners"
    android:backgroundTint="@color/white"
    android:src="@mipmap/ic_navigation"
    android:tint="@color/blue"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_marginHorizontal="10dp"
    android:onClick="onShoppingMapsButtonClicked"/>

</RelativeLayout>

1 Ответ

0 голосов
/ 10 октября 2018

Попробуйте просто ExpandableListView (без ScrollView, без MapView).Используйте код для создания MapView и добавьте его в ExpandableListView в качестве заголовка.Кроме того, вы можете добавить эффект следующим образом: http://android.amberfog.com/?p=915 Надеюсь, что поможет!

...