Android中的最佳实践navigationDrawer和标签

时间:2016-03-04 09:25:53

标签: android navigation-drawer android-tablayout android-tabs

我尝试在Android中创建标签。我的主要活动包含带有导航抽屉(Listview)的视图和内容的framelayout,因此我需要为每个菜单项使用Fragments。我认为这是构建应用程序的常用方法,其中有一个"左侧滑出"菜单?

在我的main_fragment(第二个菜单项app.Fragment)中,我需要一个带有2个标签的标签控件。在每个选项卡中,我需要加载一个片段(app.Fragment,因为1个片段包含一个仅适用于app.Fragment的地图v2(在我的例子中))。所以我有一个rab_mapview和一个tab_listview片段

tab_Mapview和tab_Listview选项卡片段都是app.Fragment片段。 我挣扎了2天才能完成这个......但是我无法修复它:&#39 ;-(我常常遇到support.v4 .........片段和app.Fragment兼容性问题或者那个问题我无法得到我发现在片段中工作的解决方案(仅在活动中,我无法在FrameLayout中加载)

我发现并尝试了以下内容:

  • TabHost
  • TabLayout
  • 操作栏标签???

在我的情况下哪一个是正确的,我该如何以正确的方式实现它?

我愿望的一点点(上面是标签,在布局下面是3个按钮)enter image description here

我的main_activity布局

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/fr_content_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </FrameLayout>
    <ListView
        android:id="@+id/lv_menu"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="left">
    </ListView>
</android.support.v4.widget.DrawerLayout>

我的main_fragment布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="aaeu.app.presentationlayer.MainFragment">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="450dp"
        android:orientation="vertical">
        <android.support.design.widget.TabLayout
            android:id="@+id/sliding_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabMode="scrollable" />
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="0px"
            android:layout_weight="1"
            android:background="@android:color/white" />
    </LinearLayout>


    <LinearLayout
        android:weightSum="3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="450dp">
        <Button
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/all_alerts"
            android:id="@+id/btn_all_alerts"/>
        <Button
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/amber_alerts"
            android:id="@+id/btn_ambert_alerts"/>
        <Button
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/endangered_missings"
            android:id="@+id/btn_missings"/>
    </LinearLayout>
</FrameLayout>

我的main_fragment中的onCreateView。这段代码无论如何都不起作用

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_main, container, false);

    // Get the ViewPager and set it's PagerAdapter so that it can display items
    tabLayout = (TabLayout)v.findViewById(android.R.id.tabhost);
    ViewPager viewPager = (ViewPager) v.findViewById(R.id.viewpager);
    viewPager.setAdapter(new SampleFragmentPagerAdapter(getFragmentManager(), getContext()));

    // Give the TabLayout the ViewPager
    TabLayout tabLayout = (TabLayout) v.findViewById(R.id.sliding_tabs);
    tabLayout.setupWithViewPager(viewPager);

    return v;
}

Iam new with android所以当有人可以发布一个简单的(工作)示例时,它会很棒。

  • 左侧有一个工作滑出菜单的主要活动。
  • 当我点击1个菜单项时,main_fragement将打开
  • 主片段包含带有2个标签的标签控件
  • 每个标签打开app.fragment片段

如果它是可行的,我想在这种情况下使用最佳实践。如果有人能够很好地制作这个简单的例子会很棒,那么我可以看到这种情况的最佳实践如何在细节中运作,我也可以将它用于其他项目。

0 个答案:

没有答案