2010-12-15 99 views
0

J'ai une disposition scrollview, avec quelques textviews et boutons, et aussi une carte au milieu.Tout le contenu de cette disposition est sur un scrollview, parce qu'il a beaucoup de choses, et l'utilisateur doit faire défiler les fenêtres pour tout voir.Problèmes avec une mise en page scrollview avec du texte et une carte sur elle ... je ne peux pas déplacer la carte

Mais alors j'ai un problème, quand l'utilisateur essaie de déplacer la carte, il ne bouge pas, et le doigt fait défiler toute la fenêtre, à cause de la scrollview. C'est cool d'avoir la possibilité de faire défiler toute la fenêtre, mais je veux que lorsque l'utilisateur bouge le doigt sur la carte, l'utilisateur ne fait défiler que la carte.

existe un moyen de résoudre ce problème sans supprimer le scrollview? j'en ai besoin!

il y a le code:

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

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

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10px"> 

<RelativeLayout 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/UserLabel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5px" 
     android:text="@string/userlabel"/> 
    <TextView 
     android:id="@+id/User" 
     android:layout_alignBaseline="@id/UserLabel" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</RelativeLayout> 

<RelativeLayout 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/PermissionLabel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="13px" 
     android:text="@string/perlabel"/> 
    <TextView 
     android:id="@+id/Permission" 
     android:layout_alignBaseline="@+id/PermissionLabel" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</RelativeLayout> 

<RelativeLayout 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/FromLabelLocate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="13px" 
     android:text="@string/fromlabel"/> 
    <TextView 
     android:id="@+id/FromLocate" 
     android:layout_alignBaseline="@+id/FromLabelLocate" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</RelativeLayout> 

<RelativeLayout 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/ToLabelLocate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="13px" 
     android:text="@string/tolabel"/> 
    <TextView 
     android:id="@+id/ToLocate" 
     android:layout_alignBaseline="@+id/ToLabelLocate" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</RelativeLayout> 

<RelativeLayout 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/LastUpdateLabel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="13px" 
     android:text="@string/lastupdatelabel"/> 
    <TextView 
     android:id="@+id/LastUpdate" 
     android:layout_alignBaseline="@id/LastUpdateLabel" 
     android:layout_alignParentRight="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</RelativeLayout> 

<View 
    android:layout_gravity="center_horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="1dip" 
    android:background="#808080" 
    android:layout_marginTop="5px" 
    android:layout_marginBottom="10px"/> 

<com.google.android.maps.MapView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mapview" 
    android:layout_width="fill_parent" 
    android:layout_height="230px" 
    android:clickable="true" 
    android:apiKey="mykey" 
/> 

<View 
    android:layout_gravity="center_horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="1dip" 
    android:background="#808080" 
    android:layout_marginTop="10px" 
    android:layout_marginBottom="10px"/> 

<RelativeLayout 
    android:gravity="center_vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <Button 
     android:id="@+id/locate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/locate" 
     android:width="130px" 
     android:layout_marginLeft="15dip"/> 
    <Button 
     android:id="@+id/trace" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/trace" 
     android:width="130px" 
     android:layout_alignBaseline="@id/locate" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="15dip"/> 
</RelativeLayout> 

</LinearLayout> 
</ScrollView> 

Répondre

1

Déplacez la carte de la ScrollView. Habituellement, vous ne pouvez pas mettre des choses défilables, comme MapView, dans un ScrollView.

+0

J'ai besoin d'avoir la carte sur le scrollview ... – NullPointerException

+0

@ AndroidUser99: Reconcevoir votre interface utilisateur pour que vous n'ayez pas besoin de la carte sur le 'ScrollView'. Ou bien, définissez 'android: clickable =" false "' sur MapView' afin que MapView ne puisse pas être manipulé directement par l'utilisateur - cela pourrait le permettre de fonctionner dans un 'ScrollView'. – CommonsWare

0

Fin de réponse tardive mais j'ai trouvé ce message en recherchant le problème et j'ai aussi trouvé une autre réponse qui a fonctionné à merveille pour moi: MapView inside a ScrollView? donc j'ai pensé que je l'afficherais ici aussi.