3

我創建了一個包含兩個選項卡的活動。其中一個標籤是地圖(Google Maps API v2)。添加視圖底部的地圖片段內的標籤

沒有活動佈局(沒有調用setContent()),因爲活動屏幕動態填充片段,具體取決於選定的選項卡。

現在,我需要在地圖的底部添加一個TextView。

我想我可以擴展MapFragment,然後在onCreateView方法上工作,以便返回包含Map和TextView的不同視圖。我不知道我該怎麼做。任何建議?

編輯:

actionbar.addTab(actionbar.newTab() 
       .setText("LIST") 
       .setTabListener(new TabListener<ListFragment>(
         this, "list", ListFragment.class))); 


     Log.i("TabListener","chiamata TABLISTENER 2"); 
     actionbar.addTab(actionbar.newTab() 
       .setText("MAP") 
       .setTabListener(new TabListener<CustomMapFragment>(
         this, "map", CustomMapFragment.class))); 

的TabListener類:

public class TabListener<T extends Fragment> implements ActionBar.TabListener { 
    private final Activity mActivity; 
    private final String mTag; 
    private final Class<T> mClass; 
    private final Bundle mArgs; 
    private Fragment mFragment; 

    public TabListener(Activity activity, String tag, Class<T> clz) { 
     this(activity, tag, clz, null); 
    } 

    public TabListener(Activity activity, String tag, Class<T> clz, Bundle args) { 
     mActivity = activity; 
     mTag = tag; 
     mClass = clz; 
     mArgs = args; 

     mFragment = mActivity.getFragmentManager().findFragmentByTag(mTag); 
     if (mFragment != null && !mFragment.isDetached()) { 
      FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction(); 
      ft.detach(mFragment); 
      ft.commit(); 

     } 

    } 

    public void onTabSelected(Tab tab, FragmentTransaction ft) { 
     if (mFragment == null) { 
      mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs); 
      ft.add(android.R.id.content, mFragment, mTag); 
     } else { 
      ft.attach(mFragment); 
     } 

    } 

    public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
     if (mFragment != null) { 
      ft.detach(mFragment); 
     } 
    } 

    public void onTabReselected(Tab tab, FragmentTransaction ft) { 

    } 
} 
+0

發表一些關於如何創建片段和你的xml的代碼,我想看看你是如何設置的 – tyczj

+0

編輯完成!不需要xml,因爲我沒有設置佈局。 – GVillani82

+0

檢查這個問題http://stackoverflow.com/questions/14694119/how-to-add-buttons-at-top-of-map-fragment-api-v2-layout –

回答

0

你需要把MapFragment(或SupportMapFragment)一個FrameLayout裏或RelativeLayout的內部。然後,您可以在與MapFragment的兄弟相同的佈局中添加TextView。也許最簡單的方法是將MapFragment子類化並覆蓋onCreateView方法。

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 
    View view = super.onCreateView(inflater, container, savedInstanceState); 
    FrameLayout wrapper = new FrameLayout(...); 
    TextView tv = new TextView(...); 
    wrapper.addView(view); 
    wrapper.addView(tv); 
    return wrapper; 
}