3

두 개의 탭이 포함 된 활동을 만들었습니다. 이 탭 중 하나는지도 (Google Maps API v2)입니다.탭 내의 맵 조각 아래에보기 추가

선택한 탭에 따라 액티비티 화면이 조각으로 동적으로 채워지기 때문에 Activty 레이아웃이 없습니다 (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

당신은 FrameLayout이 나 RelativeLayout의 내부에서 MapFragment (또는 SupportMapFragment)를 배치해야합니다. 그런 다음 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; 
}