SlidingPaneLayout с MapFragment на правой панели. Карта не отображается, когда левая панель открыта на экране (на маленьких экранах)

У меня есть SlidingPaneLayout с ListView на левой панели и MapFragment на правой панели.

Это мой код:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SlidingPaneLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/sliding_pane_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    <ListView android:id="@+id/left_pane"
              android:layout_width="200dp"
              android:layout_height="match_parent"
              android:layout_gravity="left"/>

    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/map"
              android:layout_height="match_parent"
              android:layout_width="300dp"
              android:layout_weight="1"
              android:name="com.google.android.gms.maps.MapFragment"/>
</android.support.v4.widget.SlidingPaneLayout>

Проблема заключается в том, что SlidingPaneLayout отображается на маленьком экране (в моем случае меньше, чем 200dp + 300dp). Затем карту нельзя увидеть, пока правая панель полностью не отобразится на экране. Я хочу, чтобы карта была видна, даже когда левая панель находится на экране (видна справа от ListView).

В отличие от этого. Я хочу, чтобы на правой панели отображалась карта.

Возможно ли это и как?


person sogasg    schedule 09.06.2013    source источник
comment
Что вы имеете в виду, видимый слева от ListView? У вас есть android:layout_gravity="left" в вашем ListView.   -  person Steve P.    schedule 10.06.2013
comment
Извините, имелось в виду справа от ListView.   -  person sogasg    schedule 10.06.2013
comment
stackoverflow.com/questions/ 17074872/   -  person a fair player    schedule 16.06.2013
comment
@sogasg Как вам удалось перехватить onItemClickListener в listView? потому что мой xml выглядит так же, как ваш, но мой список не может получить фокус, и он не доступен для кликов.   -  person a fair player    schedule 19.06.2013


Ответы (1)


<ListView android:id="@+id/left_pane"
          android:layout_width="200dp"
          android:layout_height="match_parent"/>

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/map"
          android:layout_height="match_parent"
          android:layout_width="300dp"
          android:name="com.google.android.gms.maps.MapFragment"/>

From what I can tell, android:layout_gravity="left" and android:layout_weight="1" are both unnecessary. Everything else should be fine. I'm not sure what you're expecting. I have a feeling that the reason that the map can't be seen is a product of the map itself. Try replacing it with something else. It should show up just fine.

Пример ссылки: Изучение SlidingPaneLayout, Как использовать SlidingPaneLayout

person Steve P.    schedule 10.06.2013
comment
Спасибо за ответ. Да, с другими представлениями он показывает нормально. Это просто карта, которая исчезает, когда левая панель находится на экране (для небольших экранов). Кстати: я даже вижу, что кнопки карты для масштабирования не исчезают, когда я свайпаю карту, но сразу начинается свайп, и карта исчезает. android:layout_weight=1 используется для того, чтобы карта занимала весь экран, когда экран шире 300dp. - person sogasg; 11.06.2013