你好,我很难改变片段活动的视觉观点.我创建了所有选项卡但是onClick我不知道如何将活动传递到该空白区域.
所以这个结构是一个名为Main的简单活动,它只是将内容视图设置为一个maintabholder.xml文档,该文档包含连接到名为MainNav的类的片段视图,其内容视图包含底部的所有选项卡.
maintabholder.xml:
MainNav.java代码段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
mRoot = inflater.inflate(R.layout.fragment_tabs, null);
mTabHost = (TabHost) mRoot.findViewById(android.R.id.tabhost);
setupTabs();
return mRoot;
}
和R.layout.fragment_tabs:
最后我要加载到片段中的Activity的内容(按下tab1按钮时)
public class HomeFragment extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
}
}
这是为了帮助您获得事物的要点,但问题出现在MainNav.java中:
@Override
public void onTabChanged(String tabId) {
Log.d(TAG, "onTabChanged(): tabId=" + tabId);
if (TAB_HOME.equals(tabId)) {
updateTab(tabId, R.id.tab_1);
mCurrentTab = 0;
return;
}
}
单击选项卡时,它将在onTabChanged活动中注册,并调用updateTab函数:
private void updateTab(String tabId, int placeholder) {
FragmentManager fm = getFragmentManager();
if (fm.findFragmentByTag(tabId) == null) {
//fm.beginTransaction()
// .replace(placeholder, /*need fragment object here*/ , tabId)
// .commit();
//
}
}
注释掉的替换方法正在寻找(int,fragment,string),我想它应该为我改变空白区域.
但我不明白从哪里得到片段对象!这个幻像对象需要以某种方式包含我的HomeFragment的xml布局,并允许我与我为HomeFragment活动编码的其他所有内容进行交互.
我的第一个预感是我的HomeFragment活动需要扩展FragmentActivity
只是活动.但这就是我撞墙的地方.
关于兼容包方法的文档很少,但TabActivity的文档说不再使用TabActivity了,所以我在这里.为Android 2.2开发
洞察力赞赏.