Last active
January 17, 2016 12:59
-
-
Save woshidan/23a106c85ba9afd45c75 to your computer and use it in GitHub Desktop.
android-activity-launchmode
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
tools:ignore="MissingPrefix"> | |
<LinearLayout android:orientation="vertical" | |
android:paddingTop="0dp" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:background="#dddbd6"> | |
<android.support.v7.widget.Toolbar | |
xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
android:id="@+id/toolbar" | |
android:layout_width="match_parent" | |
android:layout_height="?attr/actionBarSize" | |
android:paddingLeft="0dp" | |
android:paddingRight="0dp" | |
app:contentInsetStart="0dp" | |
android:text="Main" | |
android:minHeight="?attr/actionBarSize" | |
android:background="?attr/colorPrimary" | |
> | |
</android.support.v7.widget.Toolbar> | |
<android.support.design.widget.CoordinatorLayout | |
xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:app="http://schemas.android.com/apk/res-auto" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:id="@+id/coordinatorLayout" | |
> | |
<android.support.design.widget.FloatingActionButton | |
android:id="@+id/fab" | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_gravity="bottom|right" | |
app:layout_anchor="@id/coordinatorLayout" | |
app:layout_anchorGravity="bottom|right" | |
app:borderWidth="0dp" | |
/> | |
</android.support.design.widget.CoordinatorLayout> | |
</LinearLayout> | |
<android.support.design.widget.NavigationView | |
android:id="@+id/nav_view" | |
android:layout_width="wrap_content" | |
android:layout_height="match_parent" | |
android:layout_gravity="start" | |
/> | |
</android.support.v4.widget.DrawerLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.example.woshidan.launchmode"> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<activity | |
android:name=".MainActivity" | |
android:launchMode="singleTop" | |
android:label="@string/app_name" | |
android:theme="@style/AppTheme.NoActionBar"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.LAUNCHER" /> | |
</intent-filter> | |
</activity> | |
</application> | |
</manifest> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apply plugin: 'com.android.application' | |
android { | |
compileSdkVersion 23 | |
buildToolsVersion "23.0.2" | |
defaultConfig { | |
applicationId "com.example.woshidan.launchmode" | |
minSdkVersion 15 | |
targetSdkVersion 23 | |
versionCode 1 | |
versionName "1.0" | |
} | |
buildTypes { | |
release { | |
minifyEnabled false | |
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |
} | |
} | |
} | |
dependencies { | |
compile fileTree(dir: 'libs', include: ['*.jar']) | |
testCompile 'junit:junit:4.12' | |
compile 'com.android.support:appcompat-v7:23.1.1' | |
compile 'com.android.support:design:23.1.1' | |
compile('com.mikepenz:materialdrawer:4.6.4@aar') { | |
transitive = true | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
android:orientation="vertical" android:layout_width="match_parent" | |
android:layout_height="match_parent"> | |
</LinearLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.woshidan.launchmode; | |
import android.content.Intent; | |
import android.os.Bundle; | |
import android.support.design.widget.FloatingActionButton; | |
import android.support.design.widget.Snackbar; | |
import android.util.Log; | |
import android.view.View; | |
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 com.mikepenz.materialdrawer.Drawer; | |
import com.mikepenz.materialdrawer.DrawerBuilder; | |
import com.mikepenz.materialdrawer.model.DividerDrawerItem; | |
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem; | |
import com.mikepenz.materialdrawer.model.SecondaryDrawerItem; | |
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; | |
public class MainActivity extends AppCompatActivity | |
implements NavigationView.OnNavigationItemSelectedListener { | |
private ActionBarDrawerToggle drawerToggle; | |
private Drawer drawer; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_main); | |
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); | |
setSupportActionBar(toolbar); | |
//if you want to update the items at a later time it is recommended to keep it in a variable | |
PrimaryDrawerItem item1 = new PrimaryDrawerItem().withName(R.string.drawer_item_home); | |
//create the drawer and remember the `Drawer` result object | |
drawer = new DrawerBuilder() | |
.withActivity(this) | |
.withToolbar(toolbar) | |
.withActionBarDrawerToggle(true) | |
.addDrawerItems( | |
item1 | |
) | |
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { | |
@Override | |
public boolean onItemClick(View view, int position, IDrawerItem drawerItem) { | |
// do something with the clicked item :D | |
Log.d("Drawer", "position: " + position); | |
MainActivity.this.closeDrawer(); | |
Intent intent = new Intent(MainActivity.this, MainActivity.class); | |
startActivity(intent); | |
return false; | |
} | |
}) | |
.build(); | |
drawerToggle = drawer.getActionBarDrawerToggle(); | |
drawerToggle.setDrawerIndicatorEnabled(true); | |
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); | |
fab.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View view) { | |
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) | |
.setAction("Action", null).show(); | |
} | |
}); | |
// DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); | |
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); | |
navigationView.setNavigationItemSelectedListener(this); | |
} | |
@Override | |
public void onBackPressed() { | |
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); | |
if (drawer.isDrawerOpen(GravityCompat.START)) { | |
drawer.closeDrawer(GravityCompat.START); | |
} else { | |
super.onBackPressed(); | |
} | |
} | |
private void closeDrawer() { | |
drawer.closeDrawer(); | |
} | |
@Override | |
public boolean onCreateOptionsMenu(Menu menu) { | |
// Inflate the menu; this adds items to the action bar if it is present. | |
getMenuInflater().inflate(R.menu.main, menu); | |
return true; | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
// Handle action bar item clicks here. The action bar will | |
// automatically handle clicks on the Home/Up button, so long | |
// as you specify a parent activity in AndroidManifest.xml. | |
int id = item.getItemId(); | |
//noinspection SimplifiableIfStatement | |
if (id == R.id.action_settings) { | |
return true; | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
@SuppressWarnings("StatementWithEmptyBody") | |
@Override | |
public boolean onNavigationItemSelected(MenuItem item) { | |
// Handle navigation view item clicks here. | |
int id = item.getItemId(); | |
if (id == R.id.nav_camera) { | |
// Handle the camera action | |
} else if (id == R.id.nav_gallery) { | |
} else if (id == R.id.nav_slideshow) { | |
} else if (id == R.id.nav_manage) { | |
} else if (id == R.id.nav_share) { | |
} else if (id == R.id.nav_send) { | |
} | |
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); | |
drawer.closeDrawer(GravityCompat.START); | |
return true; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<resources> | |
<string name="app_name">LaunchMode</string> | |
<string name="navigation_drawer_open">Open navigation drawer</string> | |
<string name="navigation_drawer_close">Close navigation drawer</string> | |
<string name="action_settings">Settings</string> | |
<string name="drawer_item_home">Home</string> | |
<string name="drawer_item_settings">Settings</string> | |
</resources> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<resources> | |
<!-- Base application theme. --> | |
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> | |
<!-- Customize your theme here. --> | |
<item name="colorPrimary">@color/colorPrimary</item> | |
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> | |
<item name="colorAccent">@color/colorAccent</item> | |
</style> | |
<style name="AppTheme.NoActionBar"> | |
<item name="windowActionBar">false</item> | |
<item name="windowNoTitle">true</item> | |
</style> | |
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> | |
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> | |
</resources> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment