我有MapActivity,当我点击infowindow时我必须在其上显示一个片段。启动MapActivity时,我不希望片段可见。当我点击infoWindow时,我希望片段出现。
MapActivity.java
public void onInfoWindowClick(Marker marker) {
android.app.FragmentManager fragmentManager = getFragmentManager ();
FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction ();
fragmentOnMap = new FragmentOnMap();
fragmentOnMap.setSpecialText("Hello Fragment");
fragmentTransaction.add(R.id.fragmentinmap,fragmentOnMap);
fragmentTransaction.commit();
}
MapActivity布局文件
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.ather.healthapp.MapActivity" />
<FrameLayout
android:id = "@+id/fragmentinmap"
android:layout_width="match_parent"
android:layout_height="400dp"
android:background="#fefeff"
android:orientation="vertical"
android:layout_gravity="bottom"
android:translationY="400dp"
/>
</FrameLayout>
片段活动
public class FragmentOnMap extends Fragment {
String specialText;
//public FrameLayout frameLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_map, container, false);
TextView textView= (TextView) rootView.findViewById (R.id.fragmen_title);
textView.setText (specialText);
return rootView;
}
和片段布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:padding="10dp">
<TextView
android:id="@+id/fragmen_title"
android:layout_width="300dp"
android:layout_height="300dp"
android:textSize="20dp" />
<Button
android:id="@+id/TakeTest"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Test" />
</LinearLayout>
启动MapActivity时,不会显示片段,这很好。但是当我点击InfoWindow时,它并没有显示出来。我现在不想要任何动画。只需在我点击外面时显示片段并隐藏即可。
我们将不胜感激。
修改
经过深入研究后,我将slide_Up.xml添加到我的动画文件夹
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="75%p"
android:toYDelta="0%p"
android:fillAfter="true"
android:duration="500"/>
</set>
我想我现在必须调用一些动画
Animation slideup = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_up);
但在哪里?在onInfoWindow方法?我如何开始那里