Android 安卓系统-类似于foursquare的滚动视图,带有地图+;列表

Android 安卓系统-类似于foursquare的滚动视图,带有地图+;列表,android,android-layout,scrollview,foursquare,android-ui,Android,Android Layout,Scrollview,Foursquare,Android Ui,这是Android版的iOS问题 尝试创建一个视图,该视图在屏幕的20%左右(在ActionBar下…)包含一个MapView,而屏幕的其余部分是一个滚动视图,向下滚动时,重叠在MapView的顶部并将其隐藏。简言之,就像FourSquare的Android应用程序一样。 有什么想法吗?您可以在xml文件中声明一个滚动视图,它嵌入了线性布局,它嵌入了地图视图: <ScrollView xmlns:android="http://schemas.android.com/apk/res/and

这是Android版的iOS问题

尝试创建一个视图,该视图在屏幕的20%左右(在ActionBar下…)包含一个MapView,而屏幕的其余部分是一个滚动视图,向下滚动时,重叠在MapView的顶部并将其隐藏。简言之,就像FourSquare的Android应用程序一样。
有什么想法吗?

您可以在xml文件中声明一个
滚动视图
,它嵌入了
线性布局
,它嵌入了
地图视图

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center_horizontal"
    android:fillViewport="true" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

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

         <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

      ...... Your list and other stuff .......

        </LinearLayout>
    </LinearLayout>
</ScrollView>

...... 你的清单和其他东西。。。。。。。
然后,您可以通过指定
layout\u weight
属性来设置每个元素的大小

编辑
IvanDanDo,在我们的讨论之后,我发现这个链接可以做你想做的事情(虽然不确定,但我没有尝试):

上次更新

<RelativeLayout 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"
tools:context=".MainActivity" >

<fragment
    android:id="@+id/map_fragment"
    android:name="com.myapp.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="fill_parent" />

<fragment
    android:id="@id/list_fragment"
    android:name="com.myapp.ListFragment"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent" />

这很难算是理想的,但确实有效。我希望它能帮助别人

我已经基于(非常感谢这个项目)进行了一个实现

细节
示例源代码:

最简单的解决方案是在滑块内容中添加边距(slidengappanel的第二个参数),然后删除淡入淡出的背景。所有这些都是从XML中完成的。

尝试了它,给出了
MapFragment
layout\u weight
=1和
LinearLayout
layout\u weight
=3,但我看到的只是整个屏幕上的地图和底部的某个地方,一个列表提示。。。而且它也不会在我的地图上滚动。奇怪的是,我的应用程序中有几乎相同的代码。例如,如果将地图替换为
ImageView
,它是否会滚动?另外,您是否可以尝试将第一个
LinearLayout
中的
weightSum
属性指定为4?好的,因此将其更改为
ImageView
,我意识到我的列表不够大,因此不需要滚动。(哑巴)。但是现在当我滚动时,
图像视图
/
地图
只是向上滚动,我希望它能粘到顶部,因为列表最终会像重叠一样滚动到它上面,并完全隐藏它。我怎么能得到这样的效果呢?嗯,我不太明白,你想让地图与页面的其余部分一起滚动,但现在你想让它在屏幕其余部分滚动时保持在顶部,对吗?如果是,那么您不需要scrollView,您的listView可能会自动执行该操作,不是吗?(对不起,如果我不明白你的意思:)…)看看Foursquare的应用程序。主页顶部有一个
操作栏
,然后是占据屏幕30%的
地图视图
,然后是占据左60%的
滚动视图
(减去
操作栏
的10%)。当用户向下滚动时,
地图视图
看起来根本没有移动,但“滚动视图”开始向上滚动,直到它覆盖整个地图。这是一个滚动技巧,我正试图模仿,但有一个艰难的时间,它就像有两个独立的层。。。如果你有更好的解决方案,请告诉我这仍然是我迄今为止找到的最好的解决方案。我在不可见的框架上添加了一个点击处理程序,它可以打开地图以适应整个屏幕。你能分享一下你创建的布局吗?我现在正在尝试实现同样的效果…我将对此进行一次尝试。
@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);

    View view = inflater.inflate(R.layout.listview, container, false);
    SwipeListView listView = (SwipeListView) view.findViewById(R.id.venue_list);

    // An invisible view added as a header to the list and clicking it leads to the mapfragment
    TextView invisibleView = new TextView(inflater.getContext());
    invisibleView.setBackgroundColor(Color.TRANSPARENT);
    invisibleView.setHeight(300);
    invisibleView.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            listener.moveToMapFragment();
                                                                        }
    });
    listView.addHeaderView(invisibleView);