gpt4 book ai didi

android - 在选项卡内的 map fragment 底部添加一个 View

转载 作者:太空狗 更新时间:2023-10-29 15:04:56 24 4
gpt4 key购买 nike

我创建了一个包含两个选项卡的 Activity 。这些选项卡之一是 map (Google Maps API v2)。

没有 Activty 的布局(没有调用 setContent()),因为 Activity 屏幕是动态填充 fragment 的,具体取决于所选选项卡。

现在,我需要在 map 底部添加一个 TextView。

我想我可以扩展 MapFragment,然后处理 onCreateView 方法,以便返回包含 Map 和 TextView 的不同 View 。我不知道我该怎么做。有什么建议吗?

编辑:

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) {

}
}

最佳答案

您需要将 MapFragment(或 SupportMapFragment)放在 FrameLayout 或 RelativeLayout 中。然后,您可以将 TextView 添加到与 MapFragment 的兄弟相同的布局中。也许实现此目的的最简单方法是子类化 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;
}

关于android - 在选项卡内的 map fragment 底部添加一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com