mapbox / mapbox/mapbox-navigation-android-examples

MapboxManeuverView width is fixed in landscape mode

オープン
#174 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Kotlin
スター
65
フォーク
56
平均マージ
1日 4時間
マージ済み PR(30日)
2

説明

I'm not able to change MapboxManeuverView component width in landscape mode.
it works in portrait mode but not working on landscape mode.
Portrait layout :
`
<androidx.constraintlayout.widget.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:id="@+id/mapboxView"
tools:context=".Screens.MapBoxScreen.MapBoxActivity">

<com.mapbox.maps.MapView
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:mapbox_cameraTargetLat="40.7128"
    app:mapbox_cameraTargetLng="-74.0060"
    app:mapbox_logoEnabled="false"
    app:mapbox_attributionEnabled="false"
    app:mapbox_cameraZoom="14.0"/>


<include
    android:id="@+id/where_to_sound_home"
    layout="@layout/where_to_home_sound_item"
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:layout_marginTop="10dp"
    android:layout_marginEnd="10dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    tools:ignore="RtlSymmetry" />

<com.mapbox.navigation.ui.maneuver.view.MapboxManeuverView
    android:id="@+id/maneuverView"
    android:layout_width="0dp"
    android:visibility="gone"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    android:layout_marginTop="23dp"
    style="@style/MapboxCustomManeuverStyle"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="@id/content_box_frame_container"
    app:layout_constraintEnd_toEndOf="@id/content_box_frame_container"
    />

<include
    android:id="@+id/content_box_frame_container"
    layout="@layout/mappo_player"
    android:layout_width="436dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="24dp"
    android:layout_marginBottom="12dp"
    android:layout_marginTop="23dp"
    app:layout_constraintTop_toBottomOf="@id/maneuverView"
    app:layout_constraintStart_toStartOf="parent"

    />
<include
    android:id="@+id/route_overview_container"
    layout="@layout/route_overview_layout"
    android:layout_width="493dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="24dp"
    android:layout_marginBottom="12dp"
    android:layout_marginTop="23dp"
    android:visibility="gone"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    />

<include
    android:id="@+id/direction_component"
    layout="@layout/direction_layout"
    android:visibility="gone"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<include
    android:id="@+id/map_controlss"
    layout="@layout/map_controls"
    android:visibility="visible"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="14dp"
    android:layout_marginEnd="19dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    tools:ignore="RtlSymmetry" />



<!-- Framelayout to display Fragments -->

</androidx.constraintlayout.widget.ConstraintLayout>
`

Landscape code :

`
<androidx.constraintlayout.widget.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:id="@+id/mapboxView"
tools:context=".Screens.MapBoxScreen.MapBoxActivity">

<com.mapbox.maps.MapView
    android:id="@+id/mapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:mapbox_cameraTargetLat="40.7128"
    app:mapbox_cameraTargetLng="-74.0060"
    app:mapbox_logoEnabled="false"
    app:mapbox_attributionEnabled="false"
    app:mapbox_cameraZoom="14.0"/>


<include
    android:id="@+id/where_to_sound_home"
    layout="@layout/where_to_home_sound_item"
    android:layout_width="wrap_content"
    android:layout_height="90dp"
    android:layout_marginTop="10dp"
    android:layout_marginEnd="10dp"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    tools:ignore="RtlSymmetry" />

<include
    android:id="@+id/direction_component"
    layout="@layout/direction_layout"
    android:visibility="gone"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<com.mapbox.navigation.ui.maneuver.view.MapboxManeuverView
    android:id="@+id/maneuverView"
    android:layout_width="0dp"
    android:visibility="gone"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    style="@style/MapboxCustomManeuverStyle"
    app:layout_constraintEnd_toEndOf="@id/content_box_frame_container"
    app:layout_constraintStart_toStartOf="@id/content_box_frame_container"
    app:layout_constraintBottom_toTopOf="@id/content_box_frame_container"
    />
<include
    android:id="@+id/content_box_frame_container"
    layout="@layout/mappo_player"
    android:layout_width="436dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="24dp"
    android:layout_marginBottom="12dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    />
<include
    android:id="@+id/route_overview_container"
    layout="@layout/route_overview_layout"
    android:layout_width="493dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="24dp"
    android:layout_marginBottom="12dp"
    android:layout_marginTop="23dp"
    android:visibility="gone"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    />

<include
    android:id="@+id/map_controlss"
    layout="@layout/map_controls"
    android:visibility="visible"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="0dp"
    android:layout_marginEnd="24dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    tools:ignore="RtlSymmetry" />

</androidx.constraintlayout.widget.ConstraintLayout>
`
Navigation SDK: "com.mapbox.navigation:android:2.9.4"

Screenshots :
Landscape:
lndscape

Portraite :
portrait

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、issue に示されている縦向きと横向きの ConstraintLayout 定義を比較します。特に、MapboxManeuverView と content_box_frame_container の制約を確認してください。横向きのレイアウトで maneuver view の幅がどのように決まるかを確認し、そのうえで、コンテナの幅を変更すると両方の向きで期待どおり maneuver view も変更されることを確認してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
android, kotlin
領域
mobile-dev
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。