我正在尝试制作一个带有 3 个选项卡的简单 UI,每个选项卡都有自己独特的用途。我知道实现选项卡的新方法是使用 Actionbar 和 Fragments,但这让我感到困惑,因为最后我的应用程序的所有逻辑当前都位于一个相当大的活动中,而我希望更多的功能分离受到鼓励该平台。我在这里做错了吗?
我和这位先生在这里发帖有很多共同点:Android Layout Fragment/Activity Confusion .... 不幸的是,他的大部分问题都没有得到解答。
...而且,我基本上从一个人的在线示例中了解了如何使用 Actionbar 执行选项卡,这里:http ://arvid-g.de/12/android-4-actionbar-with-tabs-example . (只是没有很多例子!)
这是获取Actionbar
并创建两个选项卡:
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab calendarTab = actionbar.newTab().setText("Calendar");
ActionBar.Tab logTab = actionbar.newTab().setText("Sleep Log");
Fragment calendarFragment = new CalendarFrag();
Fragment sleepLogFragment = new LogFrag();
calendarTab.setTabListener(new MyTabListener(calendarFragment));
logTab.setTabListener(new MyTabListener(sleepLogFragment));
actionbar.addTab(logTab);
actionbar.addTab(calendarTab);
这是我制作的这些“子类”中的全部代码Fragment
:
public class CalendarFrag extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.calendar, container, false);
}
}
从字面上看,我所做的只是放大视图;只是感觉有点不对劲。然后我有一个更长的活动,其中我有我的应用程序的所有逻辑,这也很烦人。不幸的是,我设置它的方式需要动态生成进入视图的内容,例如R.layout.calendar
,我必须在某处做。
现在我在移动我的所有代码时遇到了很多错误,我想知道是否真的值得把它整理出来——最初我试图用 TabHost 和 TabWidget 以及所有这些来做标签,但它是已弃用。
我真的应该将所有代码放在一个活动中以填充三个选项卡吗?没有更好的方法吗?我应该把动态填充这些空片段的逻辑放在哪里?我想,在片段本身中,或者在单独的活动中是我更喜欢的。