package com.tekinarslan.material.sample; import android.content.res.Configuration; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.ListView; import com.apkfuns.logutils.LogUtils; import com.orhanobut.logger.Logger; import com.tekinarslan.material.sample.container.main.presenter.MainPresenter; import com.tekinarslan.material.sample.container.main.presenter.MainPresenterImpl; import com.tekinarslan.material.sample.container.main.view.MainView; import com.tekinarslan.material.sample.container.news.widget.NewsFragment; import com.tekinarslan.material.sample.customui.slidingtab_new.SlidingTabLayout; import com.tekinarslan.material.sample.fragment.SampleFragment; import com.tekinarslan.material.sample.uitls.NightModeHelper; import com.tekinarslan.material.sample.uitls.SnackbarUtil; import butterknife.Bind; import butterknife.ButterKnife; /** * 全新的activity 左侧用的是NavigationView,并且有一个FloatingActionButton */ public class MainActivity extends AppCompatActivity implements MainView,View.OnClickListener { @Bind(R.id.toolbar) Toolbar mToolbar; // @Bind(R.id.viewpager) // ViewPager mViewPager; // @Bind(R.id.navdrawer) // ListView navdrawer; @Bind(R.id.drawer_layout) DrawerLayout mDrawerLayout; @Bind(R.id.id_floatingactionbutton) android.support.design.widget.FloatingActionButton idFloatingactionbutton; private ActionBarDrawerToggle mDrawerToggle; private ListView mDrawerList; // private String titles[] = new String[]{"Sample Tab 0", "Sample Tab 1", "Sample Tab 2", "Sample Tab 3", "Sample Tab 4" // , "Sample Tab 5", "Sample Tab 6", "Sample Tab 7"}; private String titles[] = new String[]{"写字楼啦啦啦", "二手房", "租房", "新房", "查询房价"}; SlidingTabLayout slidingTabLayout; private NightModeHelper mNightModeHelper; private NavigationView mNavigationView; @Override protected void onCreate(Bundle savedInstanceState) { // NightOwl.owlBeforeCreate(this); super.onCreate(savedInstanceState); // mNightModeHelper = new NightModeHelper(this, R.style.AppTheme_Light); setContentView(R.layout.activity_main); // ViewGroup contentFrameLayout = (ViewGroup) findViewById(Window.ID_ANDROID_CONTENT); // View parentView = contentFrameLayout.getChildAt(0); // getSystemStatusBarHeitht(); setFitsSystemWindows(); ButterKnife.bind(this); // NightOwl.owlAfterCreate(this); if (mToolbar != null) { setSupportActionBar(mToolbar); mToolbar.setNavigationIcon(R.drawable.ic_ab_drawer); } mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.drawer_open, R.string.drawer_close); mDrawerToggle.syncState(); mDrawerLayout.setDrawerListener(mDrawerToggle); mNavigationView = (NavigationView) findViewById(R.id.navigation_view); setupDrawerContent(mNavigationView); mMainPresenter = new MainPresenterImpl(this); switch2News(); // setDrawerLayout(); idFloatingactionbutton.setOnClickListener(this); // Logger.init("YOUR_TAG") // default PRETTYLOGGER or use just init() // .methodCount(3) // default 2 // .hideThreadInfo() // default shown // .logLevel(LogLevel.NONE) // default LogLevel.FULL // .methodOffset(2) // default 0 // .logTool(new AndroidLogTool()); // custom log tool, optional // Logger.d("12333333333333112"); Logger.init("vic").methodCount(1).hideThreadInfo(); Logger.d("hello111111111111"); LogUtils.d("hello logutil"); } private void getSystemStatusBarHeitht() { //状态栏高度 Rect frame = new Rect(); getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); int statusBarHeight = frame.top; LogUtils.d("systemBarHeight "+ statusBarHeight); int contentHeight = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); //statusBarHeight是上面所求的状态栏的高度 int titleBarHeight = contentHeight - statusBarHeight; LogUtils.d("contentHeight "+contentHeight +" statusBarHeight "+ statusBarHeight+ " titleBarHeight "+titleBarHeight); // int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop(); //statusBarHeight是上面所求的状态栏的高度 // int titleBarHeight = contentTop - statusBarHeight; } private void setFitsSystemWindows(){ ViewGroup contentFrameLayout = (ViewGroup) findViewById(Window.ID_ANDROID_CONTENT); View parentView = contentFrameLayout.getChildAt(0); if (parentView != null && Build.VERSION.SDK_INT >= 14) { LogUtils.d(" setFitsSystemWindows(true) "+" parentView "+parentView.getHeight()); parentView.setFitsSystemWindows(true); } } @Override public boolean onOptionsItemSelected(MenuItem item) { if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.getItemId()) { case android.R.id.home: mDrawerLayout.openDrawer(GravityCompat.START); return true; case R.id.action_settings: SettingActivity.launch(this); return true; } return super.onOptionsItemSelected(item); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_setting, menu); return true; } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mDrawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mDrawerToggle.onConfigurationChanged(newConfig); } private MainPresenter mMainPresenter; private void setupDrawerContent(NavigationView navigationView) { navigationView.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem menuItem) { mMainPresenter.switchNavigation(menuItem.getItemId()); menuItem.setChecked(true); mDrawerLayout.closeDrawers(); return true; } }); } @Override public void switch2News() { getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new NewsFragment()).commit(); mToolbar.setTitle(R.string.navigation_news); } @Override public void switch2Images() { getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new SampleFragment()).commit(); mToolbar.setTitle(R.string.navigation_images); } @Override public void switch2Weather() { getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new SampleFragment()).commit(); mToolbar.setTitle(R.string.navigation_weather); } @Override public void switch2About() { getSupportFragmentManager().beginTransaction().replace(R.id.frame_content, new SampleFragment()).commit(); mToolbar.setTitle(R.string.navigation_about); } @Override public void onClick(View v) { LogUtils.d("click~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); switch (v.getId()) { // FloatingActionButton的点击事件 case R.id.id_floatingactionbutton: SnackbarUtil.show(v, getString(R.string.plusone), 0); break; default: break; } } @Override protected void onResume() { super.onResume(); // NightOwl.owlResume(this); } }