Панель SlidingUp во фрагменте карты похожа на карту Google - PullRequest
2 голосов
/ 22 марта 2019

Я использую это для макета слайда в моем фрагменте карты, но мое приложение просто снова и снова падает, и я не понимаю, что происходит. В отчете об ошибке просто говорится, что строка 34 бинарного XML-файла строка 34 бинарного XML-файла: «Ошибка раздувания фрагмента класса».

https://github.com/umano/AndroidSlidingUpPanel

это мой MapsActivity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:app="http://schemas.android.com"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">
    <com.sothree.slidinguppanel.SlidingUpPanelLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="bottom"
        app:umanoDragView="@+id/dragView"
        app:umanoOverlay="true"
        app:umanoPanelHeight="68dp"
        app:umanoParalaxOffset="100dp"
        app:umanoShadowHeight="4dp">
    <android.support.v4.widget.DrawerLayout android:id="@+id/drawer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="56dp"
            android:background="#FFFFFF">

            <ImageView
                android:id="@+id/tree_button"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:adjustViewBounds="true"
                android:scaleType="fitXY"
                android:src="@drawable/tree" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="Ecology"
                android:textColor="@color/colorAccent"
                android:textSize="30dp"
                android:textStyle="bold" />
        </android.support.v7.widget.Toolbar>

        <fragment
            android:id="@+id/map"
            android:name="com.google.android.gms.maps.SupportMapFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".MapsActivity">
        </fragment>
    </LinearLayout>
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:menu="@menu/menu">
    </android.support.design.widget.NavigationView>
    </android.support.v4.widget.DrawerLayout>
        <include layout="@layout/bottom_data">
        </include>
    </com.sothree.slidinguppanel.SlidingUpPanelLayout>
</RelativeLayout>

BottomData.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:behavior_hideable="false"
    android:clickable="true"
    app:behavior_peekHeight="56dp"
    app:layout_behavior="@string/bottom_sheet_behavior"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tex1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="EXPLORE "
        android:textSize="30sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tex1"
        android:layout_centerInParent="true"
        android:layout_marginTop="30dp"
        android:text="Your Place" />

    <Button
        android:id="@+id/b2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b1"
        android:layout_centerInParent="true"
        android:layout_marginTop="30dp"
        android:text="My Place" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b2"
        android:layout_centerInParent="true"
        android:layout_marginTop="30dp"
        android:text="Many to find " />
</LinearLayout>

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

Я полагаю, вы используете ползунок umano неправильно.

  1. com.sothree.slidinguppanel.SlidingUpPanelLayout должно быть root element в вашем activity layout
  2. В layout должно быть gravity, установленное либо top, либо bottom (положение, из которого будет извлечен ползунок)
  3. Убедитесь, что у него двое детей . Первый ребенок - твой main layout. Второй ребенок - ваш layout для выдвижной панели
  4. main layout должен иметь width, а height - match_parent. sliding layout должен иметь width, установленный на match_parent, и height, установленный на match_parent, wrap_content

Это будет пример:

//main_activity.xml or whatever layout u wish

<com.sothree.slidinguppanel.SlidingUpPanelLayout
    xmlns:sothree="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="bottom"
    sothree:umanoPanelHeight="68dp">//Height when the slide panel is in the collapsed form

    //This is the base content, everything u want in the view has to be inside these
    <fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        tools:context=".MapsActivity"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </fragment>

    //This is the sliding layout, everything u want in the slider has to be here
    <LinearLayout
        android:id="@+id/slidingLayoutMapsFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center|top"
            android:text="The Awesome Sliding Up Panel"
            android:textSize="16sp" />

    </LinearLayout>

</com.sothree.slidinguppanel.SlidingUpPanelLayout>

В любом случае, вам нужно добавить это в файлы gradle

implementation 'com.sothree.slidinguppanel:library:3.4.0'

Это от https://github.com/umano/AndroidSlidingUpPanel

0 голосов
/ 22 марта 2019

Попробуйте этот код ..

Студия Android также обеспечивает картографическую активность .. Вы можете легко добавить.

добавить приведенную ниже зависимость в файл уровня приложения.

implementation 'com.google.android.gms:play-services-maps:16.1.0'

после этого ваша ошибка решена.

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      xmlns:map="http://schemas.android.com/apk/res-auto"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/map"
      tools:context=".MapsActivity"
      android:name="com.google.android.gms.maps.SupportMapFragment"/>
...