今日の仕事は、フラグメント制御複数ページのスライドを設定することです。
要約、費用、収入:3つのコントロールの合計を設定します。
出典:
三つには、メニューを制御します。
<?XMLバージョン= "1.0"エンコード= "UTF-8" ?> < メニューのxmlns:アンドロイド= "http://schemas.android.com/apk/res/android" > < 項目は アンドロイド:ID = "@ + IDを/ navigation_home」 アンドロイド:アイコン= "@描画可能/ tab_icon1" :アンドロイドタイトル文字列/ title_summary @ = "" /> < 項目は アンドロイド:IDを= "@ + ID / navigation_dashboard" アンドロイド:アイコン= "@描画可能/ tab_icon2" アンドロイド:タイトル= "文字列/ title_income @" /> < 項目 アンドロイド: アンドロイド:アイコン= "@描画可能/ tab_icon3" アンドロイド:タイトル= "文字列/ title_outlay @" /> </ メニュー>
<?= "1.0"エンコード= "UTF-8" XMLバージョン?> < RelativeLayout のandroid:のxmlns = "http://schemas.android.com/apk/res/android" のxmlns:アプリ= "http://schemas.android .COM / APK / RES-オート」 のxmlns:ツール= "http://schemas.android.com/tools" のandroid:layout_width = "match_parent" のandroid:layout_height = "match_parent" アプリ:layout_behavior = "文字列@ / appbar_scrolling_view_behavior" ツール:コンテキスト= "MainActivity" ツール:showIn = "@レイアウト/ app_bar_main" > < android.support.v4.view。 アンドロイド:layout_width = "match_parent" のandroid:layout_height = "match_parent" アンドロイド:layout_above = "@ + ID /ナビゲーション" アンドロイド:layout_marginBottom = " - 80dp" /> < android.support.design.widget.BottomNavigationView アンドロイド:ID =」 @ + ID /ナビゲーション" アンドロイド:layout_width = "match_parent" のandroid:layout_height = "wrap_content" アンドロイド:背景= "アンドロイド:?のattr / windowBackground" アンドロイド:layout_alignParentBottom = "true"の アプリ:メニュー="@メニュー/ナビゲーション」 /> </ RelativeLayout>
パッケージnet.hnjdzy.tinyaccount。 輸入android.content.Context; 輸入android.content.Intent; 輸入android.content.SharedPreferences。 輸入android.os.Bundle; 輸入android.support.annotation.NonNull; 輸入android.support.design.widget.BottomNavigationView; 輸入android.support.v4.view.ViewPager; 輸入android.view.View; 輸入android.support.design.widget.NavigationView; 輸入android.support.v4.view.GravityCompat; 輸入android.support.v4.widget.DrawerLayout; インポートandroid.support.v7.app.ActionBarDrawerToggle; 輸入android.support.v7.app.AppCompatActivity; 輸入android.support.v7.widget.Toolbar; 輸入android.view.Menu; 輸入android.view.MenuItem; 輸入android.widget.TextView; 輸入net.hnjdzy.tinyaccount.activity.AboutActivity; 輸入net.hnjdzy.tinyaccount.activity.HelpActivity; 輸入net.hnjdzy.tinyaccount.activity.RegisterActivity; 輸入net.hnjdzy.tinyaccount.activity.SettingActivity; 輸入net.hnjdzy.tinyaccount.adapter.ViewPagerAdapter; 輸入net.hnjdzy.tinyaccount.fragment.IncomeFragment; 輸入net.hnjdzy.tinyaccount.fragment.OutlayFragment; 輸入net.hnjdzy.tinyaccount.fragment.SummaryFragment; / ** *主界面、导航、测边菜单 * @author androiddev @ 163.com、hnjdzy * / パブリック クラス MainActivityが拡張AppCompatActivity 実装NavigationView.OnNavigationItemSelectedListener { プライベートViewPager viewPagerを。 @Override 保護された ボイドのonCreate(バンドルsavedInstanceState){ スーパー.onCreate(savedInstanceState)。 setContentView(R.layout.activity_main)。 ツールバーツールバー= (ツールバー)findViewById(R.id.toolbar)。 setSupportActionBar(ツールバー)。 DrawerLayout引出し = (DrawerLayout)findViewById(R.id.drawer_layout)。 ActionBarDrawerToggleトグル = 新しいActionBarDrawerToggle( この、引き出し、ツールバー、R.string.navigation_drawer_open、R.string.navigation_drawer_close)。 drawer.addDrawerListener(トグル)。 toggle.syncState(); NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view)。 navigationView.setNavigationItemSelectedListener(この); BottomNavigationViewナビゲーション = (BottomNavigationView)findViewById(R.id.navigation)。 navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)。 viewPager = (ViewPager)findViewById(R.id.viewpager)。 setupViewPager(viewPager)。 } @Override 公共 ボイドonBackPressed(){ DrawerLayout引出し = (DrawerLayout)findViewById(R.id.drawer_layout)。 もし(drawer.isDrawerOpen(GravityCompat.START)){ drawer.closeDrawer(GravityCompat.START)。 } 他{ スーパー.onBackPressed()。 } } @Override パブリック ブールonCreateOptionsMenu(メニューメニュー){ // メニューを膨らま。それが存在する場合、これはアクションバーに項目を追加します。 getMenuInflater()(R.menu.main、メニュー)を膨らませます。 返す 真; } @Override パブリック ブールonOptionsItemSelected(MenuItemのアイテム){ // ここでハンドル・アクション・バー項目をクリック。アクションバーがします // 自動的に限り、ホーム/ Upボタンのクリックを扱う // あなたはAndroidManifest.xmlにで親アクティビティを指定して。 int型ID = item.getItemId()。 // noinspection SimplifiableIfStatement 場合(ID == R.id.action_settings){ 意図意図 = 新しいテント(この、RegisterActivity。クラス)。 startActivity(インテント)。 返す 真; } 戻り スーパー.onOptionsItemSelected(アイテム) } // 左侧边菜单栏的事件处理 @SuppressWarnings( "StatementWithEmptyBody" ) @Override パブリック ブールonNavigationItemSelected(MenuItemのアイテム){ //ナビゲーションビューアイテムのこちらをクリック壁紙ハンドル。 のInt ID = item.getItemId(); IF(ID == R.id.nav_manage){ // セットインタフェース、メンテナンスカテゴリ テントテント= 新しい新しいテント(これ、SettingActivity。クラス); startActivity(インテント); } そう IF(ID == R.id.nav_share){ // 共有 } 他 IF(ID == R.id.nav_send){ // レポート } 他 IF(ID ==R.id.nav_help){ // 帮助界面 テント意図= 新しいテント(この、HelpActivity。クラス)。 startActivity(インテント)。 } そう であれば(ID == R.id.nav_about){ // 关于软件 テント意図= 新しいテント(この、AboutActivity。クラス)。 startActivity(インテント)。 } DrawerLayout引出し = (DrawerLayout)findViewById(R.id.drawer_layout)。 drawer.closeDrawer(GravityCompat.START)。 リターン trueに; } // 処理するナビゲーション・イベントの下の プライベートBottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = 新新BottomNavigationView.OnNavigationItemSelectedListener(){ @Override 公共 ブールonNavigationItemSelected(@NonNullのMenuItemアイテム){ スイッチ(item.getItemId()){ ケースR.id.をnavigation_home: viewPager.setCurrentItem( 0 ); 戻り値 をtrueに、 ケースR.id.navigation_dashboard: viewPager.setCurrentItem(。1); 戻り値 をtrueに、 ケースR.id.navigation_notifications: viewPager.setCurrentItem( 2 ); 戻り値 をtrueに、 デフォルト:BREAK ; } リターン falseに; } }; // ナビゲーションフラグメントの下部に対応する作成 プライベート 無効setupViewPagerを(ViewPager viewPager){ ViewPagerAdapterアダプタ = 新しい新しいViewPagerAdapter(getSupportFragmentManager())。 SummaryFragment F1 = 新しい SummaryFragment()。 IncomeFragment F2 = 新しいIncomeFragment(); OutlayFragment F3 = 新しいOutlayFragment(); adapter.addFragment(F1)。 adapter.addFragment(F2)。 adapter.addFragment(F3)。 viewPager.setAdapter(アダプタ)。 } }