Android TabLayout with FrameLayout含代碼

    Android TabLayout with FrameLayout

    在之前的頁面中,我們使用TabLayout和ViewPager創建了一個滑動選項卡。愛掏網 - it200.com在這里,我們將使用TabLayout和FrameLayout創建非滑動選項卡。愛掏網 - it200.com

    TabLayout的項目通過添加Android Support Design Widget的TabItem來實現。愛掏網 - it200.com

    TabLayout使用FrameLayout的示例

    讓我們創建一個使用FrameLayout和Fragment的TabLayout示例。愛掏網 - it200.com

    文件:activity.xml

    創建一個包含TabLayout和FrameLayout視圖組件的activity.xml文件。愛掏網 - it200.com

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="tablayout.example.com.tablayoutwithframelayout.MainActivity">
    
    
        <android.support.design.widget.TabLayout
            android:id="@+id/tabLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#7367">
    
            <android.support.design.widget.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Home" />
    
            <android.support.design.widget.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Java" />
    
            <android.support.design.widget.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Android" />
    
            <android.support.design.widget.TabItem
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Php" />
        </android.support.design.widget.TabLayout>
    
        <FrameLayout
            android:id="@+id/frameLayout"
            android:layout_width="match_parent"
            android:layout_height="455dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/tabLayout">
    
        </FrameLayout>
    </android.support.constraint.ConstraintLayout>
    

    文件:build.gradle

    現在在build.gradle文件中添加了TabLayout的依賴庫。愛掏網 - it200.com

    implementation 'com.android.support:design:26.1.0'
    

    文件:MainActivity.java

    package tablayout.example.com.tablayoutwithframelayout;
    
    import android.support.design.widget.TabLayout;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentTransaction;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.FrameLayout;
    
    public class MainActivity extends AppCompatActivity {
        TabLayout tabLayout;
        FrameLayout frameLayout;
        Fragment fragment = null;
        FragmentManager fragmentManager;
        FragmentTransaction fragmentTransaction;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            tabLayout=(TabLayout)findViewById(R.id.tabLayout);
            frameLayout=(FrameLayout)findViewById(R.id.frameLayout);
    
            fragment = new HomeFragment();
            fragmentManager = getSupportFragmentManager();
            fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.frameLayout, fragment);
            fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            fragmentTransaction.commit();
    
            tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
                @Override
                public void onTabSelected(TabLayout.Tab tab) {
                   // Fragment fragment = null;
                    switch (tab.getPosition()) {
                        case 0:
                            fragment = new HomeFragment();
                            break;
                        case 1:
                            fragment = new JavaFragment();
                            break;
                        case 2:
                            fragment = new AndroidFragment();
                            break;
                        case 3:
                            fragment = new PhpFragment();
                            break;
                    }
                    FragmentManager fm = getSupportFragmentManager();
                    FragmentTransaction ft = fm.beginTransaction();
                    ft.replace(R.id.frameLayout, fragment);
                    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
                    ft.commit();
                }
    
                @Override
                public void onTabUnselected(TabLayout.Tab tab) {
    
                }
    
                @Override
                public void onTabReselected(TabLayout.Tab tab) {
    
                }
            });
    
        }
    }
    

    現在為所有不同的選項卡創建不同的片段文件。愛掏網 - it200.com

    文件:HomeFragment.java

    package tablayout.example.com.tablayoutwithframelayout;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class HomeFragment extends Fragment {
    
        public HomeFragment() {
            // Required empty public constructor
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            return inflater.inflate(R.layout.fragment_home, container, false);
        }
    
    }
    

    文件:fragment_home.xml

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="tablayout.example.com.tablayoutwithframelayout.HomeFragment">
    
        <!-- TODO: Update blank fragment layout -->
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="@string/home_fragment" />
    
    </FrameLayout>
    

    文件: JavaFragment.java

    package tablayout.example.com.tablayoutwithframelayout;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class JavaFragment extends Fragment {
    
        public JavaFragment() {
            // Required empty public constructor
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            return inflater.inflate(R.layout.fragment_java, container, false);
        }
    
    }
    

    文件: fragment_java.xml

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="tablayout.example.com.tablayoutwithframelayout.JavaFragment">
    
        <!-- TODO: Update blank fragment layout -->
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="@string/java_fragment" />
    
    </FrameLayout>
    

    文件: AndroidFragment.java

    package tablayout.example.com.tablayoutwithframelayout;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class AndroidFragment extends Fragment {
    
        public AndroidFragment() {
            // Required empty public constructor
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            return inflater.inflate(R.layout.fragment_android, container, false);
        }
    
    }
    

    文件: fragment_android.xml

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="tablayout.example.com.tablayoutwithframelayout.AndroidFragment">
    
        <!-- TODO: Update blank fragment layout -->
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="@string/android_fragment" />
    
    </FrameLayout>
    

    文件: PhpFragment.java

    package tablayout.example.com.tablayoutwithframelayout;
    
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class PhpFragment extends Fragment {
    
        public PhpFragment() {
            // Required empty public constructor
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            return inflater.inflate(R.layout.fragment_php, container, false);
        }
    
    }
    

    文件:fragment_php.xml

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="tablayout.example.com.tablayoutwithframelayout.PhpFragment">
    
        <!-- TODO: Update blank fragment layout -->
        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:text="@string/php_fragment" />
    
    </FrameLayout>
    

    文件:strings.xml

    <resources>
        <string name="app_name">TabLayout with FrameLayout</string>
    
        <!-- TODO: Remove or change this placeholder text -->
        <string name="home_fragment">Home fragment</string>
        <string name="java_fragment">Java fragment</string>
        <string name="android_fragment">Android fragment</string>
        <string name="php_fragment">Php fragment</string>
    </resources>
    

    輸出

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 亚洲欧美国产国产综合一区| 成人久久精品一区二区三区| 人妻无码第一区二区三区| 一区二区在线视频| 亚洲午夜日韩高清一区| 亚洲日韩一区二区三区| 精品一区二区三区在线观看视频| 精品视频在线观看你懂的一区 | 在线播放偷拍一区精品| 无码少妇一区二区| 中文字幕一区二区三区有限公司| 国产一区二区三区在线观看影院| 色窝窝免费一区二区三区| 中文字幕一区一区三区| 少妇无码一区二区三区免费| 亚洲V无码一区二区三区四区观看| 亚洲av高清在线观看一区二区 | 午夜视频久久久久一区| 精品综合一区二区三区| 无码日韩人妻AV一区免费l| 日韩三级一区二区| 一区二区不卡久久精品| 老湿机一区午夜精品免费福利| eeuss鲁片一区二区三区| 毛片一区二区三区| 爱爱帝国亚洲一区二区三区| 午夜性色一区二区三区不卡视频| 人妻视频一区二区三区免费| 亚洲第一区二区快射影院| 亚洲熟妇成人精品一区| 色天使亚洲综合一区二区| 亚洲AⅤ视频一区二区三区| 成人无码一区二区三区| 久久精品免费一区二区三区 | 无码精品人妻一区二区三区人妻斩 | 久久国产精品免费一区| 亚洲乱色熟女一区二区三区丝袜| 久久se精品一区二区国产| 国产精品亚洲一区二区在线观看| 色视频综合无码一区二区三区 | 手机福利视频一区二区|