如何在片段扩展的类中使用getSupportFragmentManager()?

时间:2015-12-11 17:53:09

标签: android google-maps android-fragments fragmentmanager

我有一个从片段扩展的类...我想用getSupportFragmentManager()来查找地图片段... 这是片段xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="myproject.BlankFragment">

<!-- TODO: Update blank fragment layout -->
<TextView android:layout_width="match_parent" android:layout_height="match_parent"
    android:text="this is ths map " />

<fragment
    android:layout_width="match_parent"
    android:layout_height="match_parent" android:id="@+id/mapFrag"
    tools:context="pk.edu.riu.mrcab.mrcabv1.MapsActivity"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    />

这是片段类

public class BlankFragment extends Fragment {
private GoogleMap mMap; 

public BlankFragment() {

}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_blank, container, false);

    return rootView;
}
private void setUpMapIfNeeded() {
    if (mMap == null) {
        mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
                .getMap();

        if (mMap != null) {
        }
    }
}

3 个答案:

答案 0 :(得分:1)

每当您尝试访问嵌套的片段时,都应该调用getChildFragmentManager()而不是getSupportFragmentManager()。请注意,您应该使用支持库Fragment,除非您支持API 17 +。

答案 1 :(得分:0)

你试过吗

<script>
$().ready(function(){
$( window ).resize(function() {
  $("#slides-body").removeAttr("style");
});
});
</script>

这就是我经常这样做的方式。

答案 2 :(得分:0)

使用此

private FragmentActivity myContext;

覆盖片段的onAttach方法:

@Override
public void onAttach(Activity activity) {
myContext=(FragmentActivity) activity;
super.onAttach(activity);
}

并在需要时调用此方法

FragmentManager fragManager = myContext.getSupportFragmentManager(); //if lib you are using is support v4

或使用

FragmentManager fragManager = myContext.getFragmentManager();

或者您可以直接调用此方法。

getFragmentManager()