这是Android等同于this iOS问题。
尝试在大约20%的屏幕(在ActionBar下)创建一个包含MapView的视图,屏幕的其余部分是ScrollView,当向下滚动时,重叠在MapView顶部并隐藏它。简而言之就像FourSquare的Android应用程序。 有什么想法吗?
答案 0 :(得分:7)
我已经基于AndroidSlidingUpPanel进行了实施(非常感谢这个项目)。
详情http://android.amberfog.com/?p=915 源代码示例:https://github.com/dlukashev/AndroidSlidingUpPanel-foursquare-map-demo
答案 1 :(得分:4)
最后更新
<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" />
然后我像这样在列表中添加一个不可见的标题:
@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);
这不太理想,但它确实有效。我希望它对某人有所帮助..
答案 2 :(得分:1)
最简单的解决方案是为滑块内容(SlidingUpPanel的第二个参数)添加边距,然后删除淡化背景。全部都是从XML完成的。
答案 3 :(得分:0)
您可以在xml文件中声明嵌入ScrollView
的{{1}},其中嵌入LinearLayout
:
MapView
然后,您可以通过指定<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>
属性
修改强> IvanDanDo,在我们的讨论之后,我发现这个链接可以做你想要的(但不确定,我没试过):Android: Have an arbitrary View slide under another View like the software keyboard does