2013-04-16 1 views
0

Привет Я пытаюсь разместить настроенное listview поверх mapFragment (я использую GoogleMaps api V2). Этот mapFragment находится внутри фрагмента ActionBarTab. Я посмотрел в tileOverlay и groundOverlay, но они все о размещении изображений (по моему пониманию) на карте. Есть ли способ надуть ListView на mapFragment. Это мой фрагмент макетаКак вставить настроенный список на MapFragment

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/fragment_regional_analysis" > 


     <ListView 
      android:id="@android:id/list" 
      android:layout_width="300dp" 
      android:layout_height="fill_parent" 
      android:background="@android:color/transparent" 
      android:cacheColorHint="@android:color/transparent" /> 
     <View 
      android:id="@+id/mapView"     
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"/> 

</LinearLayout> 

Это класс фрагментировать

`

public class RegionalFragment extends Fragment 
    { 

static final LatLng UK = new LatLng(53.4167, 3.0000); 
static final LatLng LONDON = new LatLng(51.5171, 0.1062); 
static final LatLng Brimingham = new LatLng(52.4800, 1.9100); 
private MapFragment mapFragment; 
private GoogleMap map; 
ProgressBar progressBar; 
int progress = 0; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_container, 
      container, false); 
    mapFragment = new MapFragment() { 
     @Override 
     public void onActivityCreated(Bundle savedInstanceState) { 
      super.onActivityCreated(savedInstanceState); 
      map = mapFragment.getMap(); 

      if (map != null) { 
       setupMap(); 
      } 
     } 
    }; 
    // fragment added dynamically 
    FragmentTransaction transaction = getFragmentManager() 
      .beginTransaction(); 
    transaction.add(R.id.mapView, mapFragment).commit(); 
    return v; 
}` 

ошибки LogCat:

04-16 09:38:40.300: E/AndroidRuntime(807): FATAL EXCEPTION: main 
04-16 09:38:40.300: E/AndroidRuntime(807): java.lang.ClassCastException: android.view.View cannot be  cast to android.view.ViewGroup 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:875) 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057) 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.app.BackStackRecord.run(BackStackRecord.java:682) 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.app.FragmentManagerImpl$1.run(FragmentManager.java:441) 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.os.Handler.handleCallback(Handler.java:725) 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.os.Looper.loop(Looper.java:137) 
04-16 09:38:40.300: E/AndroidRuntime(807): at android.app.ActivityThread.main(ActivityThread.java:5041) 
04-16 09:38:40.300: E/AndroidRuntime(807): at java.lang.reflect.Method.invokeNative(Native Method) 
04-16 09:38:40.300: E/AndroidRuntime(807): at java.lang.reflect.Method.invoke(Method.java:511) 
04-16 09:38:40.300: E/AndroidRuntime(807): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
04-16 09:38:40.300: E/AndroidRuntime(807): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
04-16 09:38:40.300: E/AndroidRuntime(807): at dalvik.system.NativeStart.main(Native Method) 

Спасибо заранее.

ответ

0

Не можете ли вы просто поместить его в свой файл макета?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<ListView 
      android:id="@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="AS_YOU_WANT_IT" /> 

<fragment 
    android:id="@+id/mapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    class="com.google.android.gms.maps.SupportMapFragment" /> 

</LinearLayout> 

И надуть это в своем фрагменте?

+0

Извините, забыл упомянуть, что мой mapfragment находится внутри фрагмента вкладки панели действий. Я попробовал поставить список, но мое приложение разбилось. –

+0

Вы могли бы опубликовать этот код решения и результат logcat? или вы знаете причину аварии? – Analizer

+0

В logcat таких ошибок нет, но экран эмулятора начинает мигать быстро. Не знаю, почему. Но разве нет способа раздуть список на карте? –