├── .gitignore ├── CoordinatorCollapsingToolBarExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── coordinatorcollapsingtoolbarexample │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── coordinatorcollapsingtoolbarexample │ │ └── MainActivity.java │ └── res │ ├── layout │ └── activity_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── color.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── CoordinatorFloatingActionButtonSnackBarExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── coordinatorfloatingactionbuttonsnackbar │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── coordinatorfloatingactionbuttonsnackbar │ │ └── MainActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_add_white_24dp.png │ ├── drawable-mdpi │ └── ic_add_white_24dp.png │ ├── drawable-xhdpi │ └── ic_add_white_24dp.png │ ├── drawable-xxhdpi │ └── ic_add_white_24dp.png │ ├── drawable-xxxhdpi │ └── ic_add_white_24dp.png │ ├── layout │ └── activity_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── CoordinatorToolBarExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── coordinatortoolbarexample │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── coordinatortoolbarexample │ │ └── MainActivity.java │ └── res │ ├── layout │ └── activity_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── color.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── FloatingActionButtonExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── coordinatorfloatingactiobbuttonsnacklayout │ │ └── android │ │ └── design │ │ └── floatingactionbutton │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── floatingactionbutton │ │ └── MainActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_add_white_24dp.png │ ├── drawable-mdpi │ └── ic_add_white_24dp.png │ ├── drawable-xhdpi │ └── ic_add_white_24dp.png │ ├── drawable-xxhdpi │ └── ic_add_white_24dp.png │ ├── drawable-xxxhdpi │ └── ic_add_white_24dp.png │ ├── layout │ └── activity_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── NavigationViewExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── navgation │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── navgation │ │ └── MainActivity.java │ └── res │ ├── drawable-hdpi │ └── ic_menu_black_24dp.png │ ├── drawable-mdpi │ └── ic_menu_black_24dp.png │ ├── drawable-xhdpi │ └── ic_menu_black_24dp.png │ ├── drawable-xxhdpi │ └── ic_menu_black_24dp.png │ ├── drawable-xxxhdpi │ └── ic_menu_black_24dp.png │ ├── layout │ ├── activity_main.xml │ ├── nav_header.xml │ └── toolbar.xml │ ├── menu │ └── my_navigation_items.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── color.xml │ ├── strings.xml │ └── styles.xml ├── README.MD ├── SnackBarExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── snackbar │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── snackbar │ │ └── MainActivity.java │ └── res │ ├── layout │ └── activity_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── SwipeDismissExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── swipedismiss │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── swipedismiss │ │ └── MainActivity.java │ └── res │ ├── layout │ └── activity_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── SwipeDismissListExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── swipedismisslist │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── swipedismisslist │ │ └── MainActivity.java │ └── res │ ├── layout │ ├── activity_main.xml │ └── listitem.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── TabLayoutExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── tablayout │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── tablayout │ │ ├── MainActivity.java │ │ └── PagerFragment.java │ └── res │ ├── layout │ ├── activity_main.xml │ └── fragment_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── TextInputLayoutExample ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ ├── coordinatorfloatingactiobbuttonsnacklayout │ │ └── android │ │ │ └── design │ │ │ └── textinput │ │ │ └── ApplicationTest.java │ │ └── leolin │ │ └── android │ │ └── design │ │ └── textinput │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── leolin │ │ └── android │ │ └── design │ │ └── textinput │ │ └── MainActivity.java │ └── res │ ├── layout │ └── activity_main.xml │ ├── menu │ └── menu_main.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ ├── values-w820dp │ └── dimens.xml │ └── values │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | .DS_Store 4 | **/build 5 | .idea 6 | **/*.iml 7 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.coordinatorcollapsingtoolbarexample" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | compile 'com.android.support:recyclerview-v7:22.2.0' 44 | } 45 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/androidTest/java/me/leolin/android/design/coordinatorcollapsingtoolbarexample/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.coordinatorcollapsingtoolbarexample; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/java/me/leolin/android/design/coordinatorcollapsingtoolbarexample/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.coordinatorcollapsingtoolbarexample; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.CollapsingToolbarLayout; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.support.v7.widget.LinearLayoutManager; 7 | import android.support.v7.widget.RecyclerView; 8 | import android.support.v7.widget.Toolbar; 9 | import android.view.View; 10 | import android.view.ViewGroup; 11 | import android.widget.TextView; 12 | 13 | public class MainActivity extends AppCompatActivity { 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | setContentView(R.layout.activity_main); 19 | 20 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 21 | setSupportActionBar(toolbar); 22 | 23 | CollapsingToolbarLayout collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsingToolbarLayout); 24 | collapsingToolbarLayout.setTitle(getString(R.string.app_name)); 25 | 26 | RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 27 | recyclerView.setAdapter(new RecyclerAdapter()); 28 | recyclerView.setLayoutManager(new LinearLayoutManager(this)); 29 | 30 | } 31 | 32 | class RecyclerAdapter extends RecyclerView.Adapter { 33 | 34 | String data[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O"}; 35 | 36 | @Override 37 | public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 38 | View inflate = getLayoutInflater().inflate(android.R.layout.simple_list_item_1, null); 39 | return new ViewHolder(inflate); 40 | } 41 | 42 | @Override 43 | public void onBindViewHolder(ViewHolder viewHolder, int i) { 44 | viewHolder.textView.setText(data[i]); 45 | } 46 | 47 | @Override 48 | public int getItemCount() { 49 | return data.length; 50 | } 51 | } 52 | 53 | class ViewHolder extends RecyclerView.ViewHolder { 54 | 55 | TextView textView; 56 | 57 | public ViewHolder(View itemView) { 58 | super(itemView); 59 | textView = (TextView) itemView.findViewById(android.R.id.text1); 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 18 | 26 | 27 | 28 | 29 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorCollapsingToolBarExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorCollapsingToolBarExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorCollapsingToolBarExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorCollapsingToolBarExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/values/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #303f9f 4 | #3f51b5 5 | #4675FF 6 | #884675FF 7 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | CoordinatorCollapsingToolBarExample 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /CoordinatorCollapsingToolBarExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.coordinatorfloatingactionbuttonsnackbar" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | } 44 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/androidTest/java/me/leolin/android/design/coordinatorfloatingactionbuttonsnackbar/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.coordinatorfloatingactionbuttonsnackbar; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/java/me/leolin/android/design/coordinatorfloatingactionbuttonsnackbar/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.coordinatorfloatingactionbuttonsnackbar; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.CoordinatorLayout; 5 | import android.support.design.widget.FloatingActionButton; 6 | import android.support.design.widget.Snackbar; 7 | import android.support.v7.app.AppCompatActivity; 8 | import android.view.View; 9 | 10 | 11 | public class MainActivity extends AppCompatActivity { 12 | 13 | private CoordinatorLayout coordinatorLayout; 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | setContentView(R.layout.activity_main); 19 | 20 | coordinatorLayout = (CoordinatorLayout) findViewById(R.id.container); 21 | 22 | FloatingActionButton floatingActionButton = (FloatingActionButton) findViewById(R.id.floatingActionButton); 23 | floatingActionButton.setOnClickListener(new View.OnClickListener() { 24 | @Override 25 | public void onClick(View v) { 26 | Snackbar.make(coordinatorLayout, "Done", Snackbar.LENGTH_LONG) 27 | .setAction("Undo", new View.OnClickListener() { 28 | @Override 29 | public void onClick(View v) { 30 | 31 | } 32 | }) 33 | .show(); 34 | } 35 | }); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-hdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-hdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-mdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-mdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-xhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-xhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorFloatingActionButtonSnackBarExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | CoordinatorFloatingActionButtonSnackBarExample 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /CoordinatorFloatingActionButtonSnackBarExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.coordinatortoolbarexample" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | compile 'com.android.support:recyclerview-v7:22.2.0' 44 | } 45 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/androidTest/java/me/leolin/android/design/coordinatortoolbarexample/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.coordinatortoolbarexample; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/java/me/leolin/android/design/coordinatortoolbarexample/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.coordinatortoolbarexample; 2 | 3 | import android.os.Bundle; 4 | import android.support.v7.app.AppCompatActivity; 5 | import android.support.v7.widget.LinearLayoutManager; 6 | import android.support.v7.widget.RecyclerView; 7 | import android.support.v7.widget.Toolbar; 8 | import android.view.View; 9 | import android.view.ViewGroup; 10 | import android.widget.TextView; 11 | 12 | 13 | public class MainActivity extends AppCompatActivity { 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | setContentView(R.layout.activity_main); 19 | 20 | Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 21 | setSupportActionBar(toolbar); 22 | 23 | RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView); 24 | recyclerView.setAdapter(new RecyclerAdapter()); 25 | recyclerView.setLayoutManager(new LinearLayoutManager(this)); 26 | 27 | } 28 | 29 | class RecyclerAdapter extends RecyclerView.Adapter { 30 | 31 | String data[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O"}; 32 | 33 | @Override 34 | public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { 35 | View inflate = getLayoutInflater().inflate(android.R.layout.simple_list_item_1, null); 36 | return new ViewHolder(inflate); 37 | } 38 | 39 | @Override 40 | public void onBindViewHolder(ViewHolder viewHolder, int i) { 41 | viewHolder.textView.setText(data[i]); 42 | } 43 | 44 | @Override 45 | public int getItemCount() { 46 | return data.length; 47 | } 48 | } 49 | 50 | class ViewHolder extends RecyclerView.ViewHolder { 51 | 52 | TextView textView; 53 | 54 | public ViewHolder(View itemView) { 55 | super(itemView); 56 | textView = (TextView) itemView.findViewById(android.R.id.text1); 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 20 | 21 | 22 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorToolBarExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorToolBarExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorToolBarExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/CoordinatorToolBarExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/values/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #303f9f 4 | #3f51b5 5 | #4675FF 6 | #884675FF 7 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | CoordinatorToolBarExample 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /CoordinatorToolBarExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.floatingactionbutton" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | } 44 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/androidTest/java/me/coordinatorfloatingactiobbuttonsnacklayout/android/design/floatingactionbutton/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.coordinatorfloatingactiobbuttonsnacklayout.android.design.floatingactionbutton; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/java/me/leolin/android/design/floatingactionbutton/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.floatingactionbutton; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.FloatingActionButton; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.view.View; 7 | import android.widget.Toast; 8 | 9 | 10 | public class MainActivity extends AppCompatActivity { 11 | 12 | @Override 13 | protected void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | setContentView(R.layout.activity_main); 16 | 17 | FloatingActionButton floatingActionButton = (FloatingActionButton) findViewById(R.id.floatingActionButton); 18 | floatingActionButton.setOnClickListener(new View.OnClickListener() { 19 | @Override 20 | public void onClick(View v) { 21 | Toast.makeText(MainActivity.this, "Add", Toast.LENGTH_SHORT).show(); 22 | } 23 | }); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/drawable-hdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/drawable-hdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/drawable-mdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/drawable-mdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/drawable-xhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/drawable-xhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/drawable-xxhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/drawable-xxxhdpi/ic_add_white_24dp.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/FloatingActionButtonExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | FloatingActionButtonExample 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /FloatingActionButtonExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /NavigationViewExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /NavigationViewExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.2.2' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.navgation" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | } 44 | -------------------------------------------------------------------------------- /NavigationViewExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /NavigationViewExample/src/androidTest/java/me/leolin/android/design/navgation/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.navgation; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /NavigationViewExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/java/me/leolin/android/design/navgation/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.navgation; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.NavigationView; 5 | import android.support.v4.view.GravityCompat; 6 | import android.support.v4.widget.DrawerLayout; 7 | import android.support.v7.app.AppCompatActivity; 8 | import android.support.v7.widget.Toolbar; 9 | import android.view.MenuItem; 10 | 11 | 12 | public class MainActivity extends AppCompatActivity { 13 | 14 | private DrawerLayout drawerLayout; 15 | private Toolbar toolbar; 16 | private NavigationView navigationView; 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_main); 22 | 23 | toolbar = (Toolbar) findViewById(R.id.toolbar); 24 | drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 25 | navigationView = (NavigationView) findViewById(R.id.navigation); 26 | 27 | setSupportActionBar(toolbar); 28 | 29 | navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 30 | @Override 31 | public boolean onNavigationItemSelected(MenuItem menuItem) { 32 | menuItem.setChecked(true); 33 | drawerLayout.closeDrawers(); 34 | return true; 35 | } 36 | }); 37 | } 38 | 39 | @Override 40 | public boolean onOptionsItemSelected(MenuItem item) { 41 | switch (item.getItemId()) { 42 | case android.R.id.home: 43 | drawerLayout.openDrawer(GravityCompat.START); 44 | return true; 45 | } 46 | return super.onOptionsItemSelected(item); 47 | } 48 | 49 | 50 | } 51 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/drawable-hdpi/ic_menu_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/drawable-hdpi/ic_menu_black_24dp.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/drawable-mdpi/ic_menu_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/drawable-mdpi/ic_menu_black_24dp.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/drawable-xhdpi/ic_menu_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/drawable-xhdpi/ic_menu_black_24dp.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/drawable-xxhdpi/ic_menu_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/drawable-xxhdpi/ic_menu_black_24dp.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/drawable-xxxhdpi/ic_menu_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/drawable-xxxhdpi/ic_menu_black_24dp.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 9 | 12 | 13 | 19 | 20 | 21 | 30 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/layout/nav_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 12 | 14 | 16 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/layout/toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/menu/my_navigation_items.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 13 | 14 | 15 | 18 | 19 | 23 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/NavigationViewExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/values/color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #303f9f 4 | #3f51b5 5 | #4675FF 6 | #884675FF 7 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | NavigationViewExample 3 | 4 | Menu item 1 5 | Menu item 2 6 | Sub header 7 | Sub item 1 8 | Sub item 2 9 | 10 | -------------------------------------------------------------------------------- /NavigationViewExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | AndroidDesignSupportLibraryExamples 2 | ================================ 3 | Simple examples for [Android Design Support Library](http://android-developers.blogspot.tw/2015/05/android-design-support-library.html) 4 | 5 | NavigationViewExample 6 | ================================ 7 | 8 | 9 | TextInputLayoutExample 10 | ================================ 11 | 12 | 13 | FloatingActionButtonExample 14 | ================================ 15 | 16 | 17 | SnackBarExample 18 | ================================ 19 | 20 | 21 | 22 | TabLayoutExample 23 | ================================ 24 | 25 | 26 | 27 | CoordinatorFloatingActionButtonSnackBarExample 28 | ================================ 29 | 30 | 31 | 32 |     33 | 34 | 35 | 36 | 37 | CoordinatorToolBarExample 38 | ================================ 39 | 40 | 41 | 42 |     43 | 44 | 45 | 46 | 47 | 48 | CoordinatorCollapsingToolBarExample 49 | ================================ 50 | 51 | 52 | 53 |     54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /SnackBarExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /SnackBarExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.snackbar" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | } 44 | -------------------------------------------------------------------------------- /SnackBarExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /SnackBarExample/src/androidTest/java/me/leolin/android/design/snackbar/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.snackbar; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /SnackBarExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /SnackBarExample/src/main/java/me/leolin/android/design/snackbar/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.snackbar; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.Snackbar; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.view.View; 7 | import android.widget.Toast; 8 | 9 | 10 | public class MainActivity extends AppCompatActivity { 11 | 12 | 13 | @Override 14 | protected void onCreate(Bundle savedInstanceState) { 15 | super.onCreate(savedInstanceState); 16 | setContentView(R.layout.activity_main); 17 | 18 | 19 | View container = findViewById(R.id.container); 20 | Snackbar.make(container, "Done!", Snackbar.LENGTH_LONG) 21 | .setAction("Undo", new View.OnClickListener() { 22 | @Override 23 | public void onClick(View v) { 24 | Toast.makeText(MainActivity.this, "Ok was clicked", Toast.LENGTH_SHORT).show(); 25 | } 26 | }) 27 | .show(); 28 | 29 | } 30 | 31 | 32 | } 33 | -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SnackBarExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SnackBarExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SnackBarExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SnackBarExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | SnakeBarExample 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /SnackBarExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SwipeDismissExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /SwipeDismissExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.swipedismiss" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | compile 'com.android.support:recyclerview-v7:22.2.0' 44 | compile 'com.android.support:cardview-v7:22.2.0' 45 | } 46 | -------------------------------------------------------------------------------- /SwipeDismissExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /SwipeDismissExample/src/androidTest/java/me/leolin/android/design/swipedismiss/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.swipedismiss; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/java/me/leolin/android/design/swipedismiss/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.swipedismiss; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.CoordinatorLayout; 5 | import android.support.design.widget.Snackbar; 6 | import android.support.design.widget.SwipeDismissBehavior; 7 | import android.support.v7.app.AppCompatActivity; 8 | import android.support.v7.widget.CardView; 9 | import android.view.MotionEvent; 10 | import android.view.View; 11 | 12 | 13 | public class MainActivity extends AppCompatActivity { 14 | 15 | private CoordinatorLayout coordinatorLayout; 16 | private CardView cardView; 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.activity_main); 22 | 23 | 24 | coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout); 25 | cardView = (CardView) findViewById(R.id.cardView); 26 | 27 | CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) cardView.getLayoutParams(); 28 | 29 | final SwipeDismissBehavior behavior = new SwipeDismissBehavior(); 30 | behavior.setSwipeDirection(SwipeDismissBehavior.SWIPE_DIRECTION_START_TO_END); 31 | behavior.setListener(new SwipeDismissBehavior.OnDismissListener() { 32 | @Override 33 | public void onDismiss(final View view) { 34 | Snackbar.make(coordinatorLayout, "Done", Snackbar.LENGTH_LONG) 35 | .show(); 36 | } 37 | 38 | @Override 39 | public void onDragStateChanged(int i) { 40 | } 41 | }); 42 | params.setBehavior(behavior); 43 | 44 | cardView.setOnTouchListener(new View.OnTouchListener() { 45 | @Override 46 | public boolean onTouch(View v, MotionEvent event) { 47 | return behavior.onTouchEvent(coordinatorLayout, cardView, event); 48 | } 49 | }); 50 | } 51 | 52 | 53 | } 54 | -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 15 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SwipeDismissExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SwipeDismissExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SwipeDismissExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SwipeDismissExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | SwipeDismissExample 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /SwipeDismissExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SwipeDismissListExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /SwipeDismissListExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.swipedismisslist" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | compile 'com.android.support:recyclerview-v7:22.2.0' 44 | compile 'com.android.support:cardview-v7:22.2.0' 45 | } 46 | -------------------------------------------------------------------------------- /SwipeDismissListExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/androidTest/java/me/leolin/android/design/swipedismisslist/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.swipedismisslist; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/java/me/leolin/android/design/swipedismisslist/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.swipedismisslist; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.CoordinatorLayout; 5 | import android.support.design.widget.Snackbar; 6 | import android.support.design.widget.SwipeDismissBehavior; 7 | import android.support.v7.app.AppCompatActivity; 8 | import android.support.v7.widget.CardView; 9 | import android.view.MotionEvent; 10 | import android.view.View; 11 | import android.view.ViewGroup; 12 | import android.widget.BaseAdapter; 13 | import android.widget.ListView; 14 | import android.widget.TextView; 15 | 16 | import java.util.Arrays; 17 | import java.util.LinkedList; 18 | import java.util.List; 19 | 20 | 21 | public class MainActivity extends AppCompatActivity { 22 | 23 | 24 | private ListView listView; 25 | 26 | @Override 27 | protected void onCreate(Bundle savedInstanceState) { 28 | super.onCreate(savedInstanceState); 29 | setContentView(R.layout.activity_main); 30 | 31 | listView = (ListView) findViewById(R.id.listView); 32 | listView.setAdapter(new ListAdapter()); 33 | } 34 | 35 | class ListAdapter extends BaseAdapter { 36 | List data = new LinkedList(); 37 | 38 | public ListAdapter() { 39 | data.addAll(Arrays.asList("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O")); 40 | } 41 | 42 | @Override 43 | public int getCount() { 44 | return data.size(); 45 | } 46 | 47 | @Override 48 | public Object getItem(int position) { 49 | return data.get(position); 50 | } 51 | 52 | @Override 53 | public long getItemId(int position) { 54 | return position; 55 | } 56 | 57 | @Override 58 | public View getView(final int position, View convertView, ViewGroup parent) { 59 | convertView = getLayoutInflater().inflate(R.layout.listitem, null); 60 | ViewHolder viewHolder = new ViewHolder(convertView); 61 | convertView.setTag(viewHolder); 62 | 63 | final String text = data.get(position); 64 | viewHolder.textView.setText(text); 65 | 66 | final CardView cardView = viewHolder.cardView; 67 | final CoordinatorLayout coordinatorLayout = viewHolder.coordinatorLayout; 68 | CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) cardView.getLayoutParams(); 69 | final SwipeDismissBehavior behavior = new SwipeDismissBehavior(); 70 | behavior.setSwipeDirection(SwipeDismissBehavior.SWIPE_DIRECTION_START_TO_END); 71 | behavior.setListener(new SwipeDismissBehavior.OnDismissListener() { 72 | @Override 73 | public void onDismiss(final View view) { 74 | data.remove(position); 75 | notifyDataSetChanged(); 76 | Snackbar.make(listView, "Removed:" + text, Snackbar.LENGTH_LONG) 77 | .setAction("Undo", new View.OnClickListener() { 78 | @Override 79 | public void onClick(View v) { 80 | data.add(position, text); 81 | notifyDataSetChanged(); 82 | } 83 | }) 84 | .show(); 85 | } 86 | 87 | @Override 88 | public void onDragStateChanged(int i) { 89 | } 90 | }); 91 | params.setBehavior(behavior); 92 | 93 | coordinatorLayout.setOnTouchListener(new View.OnTouchListener() { 94 | @Override 95 | public boolean onTouch(View v, MotionEvent event) { 96 | return behavior.onTouchEvent(coordinatorLayout, cardView, event); 97 | } 98 | }); 99 | 100 | return convertView; 101 | } 102 | 103 | class ViewHolder { 104 | 105 | CoordinatorLayout coordinatorLayout; 106 | CardView cardView; 107 | TextView textView; 108 | 109 | public ViewHolder(View convertView) { 110 | textView = (TextView) convertView.findViewById(R.id.textView); 111 | coordinatorLayout = (CoordinatorLayout) convertView.findViewById(R.id.coordinatorLayout); 112 | cardView = (CardView) convertView.findViewById(R.id.cardView); 113 | } 114 | } 115 | } 116 | 117 | 118 | } 119 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/layout/listitem.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 13 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SwipeDismissListExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SwipeDismissListExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SwipeDismissListExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/SwipeDismissListExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | SwipeDismissListExample 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /SwipeDismissListExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TabLayoutExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /TabLayoutExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.tablayout" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | } 44 | -------------------------------------------------------------------------------- /TabLayoutExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /TabLayoutExample/src/androidTest/java/me/leolin/android/design/tablayout/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.tablayout; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /TabLayoutExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/java/me/leolin/android/design/tablayout/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.tablayout; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.TabLayout; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentManager; 7 | import android.support.v4.app.FragmentPagerAdapter; 8 | import android.support.v4.view.ViewPager; 9 | import android.support.v7.app.AppCompatActivity; 10 | 11 | 12 | public class MainActivity extends AppCompatActivity { 13 | 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | setContentView(R.layout.activity_main); 19 | 20 | ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); 21 | TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); 22 | 23 | viewPager.setAdapter(new PagerAdapter(getSupportFragmentManager())); 24 | tabLayout.setupWithViewPager(viewPager); 25 | } 26 | 27 | 28 | class PagerAdapter extends FragmentPagerAdapter { 29 | private String[] titles = {"A", "B", "C", "D", "E"}; 30 | 31 | public PagerAdapter(FragmentManager fm) { 32 | super(fm); 33 | } 34 | 35 | @Override 36 | public Fragment getItem(int position) { 37 | return PagerFragment.newInstance(position); 38 | } 39 | 40 | @Override 41 | public int getCount() { 42 | return titles.length; 43 | } 44 | 45 | @Override 46 | public CharSequence getPageTitle(int position) { 47 | return titles[position]; 48 | } 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/java/me/leolin/android/design/tablayout/PagerFragment.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.tablayout; 2 | 3 | import android.os.Bundle; 4 | import android.support.annotation.Nullable; 5 | import android.support.v4.app.Fragment; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.TextView; 10 | 11 | /** 12 | * @author Leolin 13 | */ 14 | public class PagerFragment extends Fragment { 15 | static PagerFragment newInstance(int position) { 16 | Bundle args = new Bundle(); 17 | args.putInt("position", position); 18 | PagerFragment fragment = new PagerFragment(); 19 | fragment.setArguments(args); 20 | return fragment; 21 | } 22 | 23 | @Nullable 24 | @Override 25 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 26 | return inflater.inflate(R.layout.fragment_main, null); 27 | } 28 | 29 | @Override 30 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 31 | TextView textView = (TextView) view.findViewById(R.id.textView); 32 | textView.setText(String.valueOf(getArguments().getInt("position"))); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/layout/fragment_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/TabLayoutExample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/TabLayoutExample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/TabLayoutExample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leolin310148/AndroidDesignSupportLibraryExamples/21301ea2d2d387faeb7d7615aca8d51c73693026/TabLayoutExample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | TabLayoutExample 3 | 4 | Hello world! 5 | Settings 6 | 7 | -------------------------------------------------------------------------------- /TabLayoutExample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TextInputLayoutExample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /TextInputLayoutExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | dependencies { 6 | classpath 'com.android.tools.build:gradle:1.1.1' 7 | } 8 | } 9 | apply plugin: 'com.android.application' 10 | 11 | repositories { 12 | jcenter() 13 | } 14 | 15 | android { 16 | compileSdkVersion 22 17 | buildToolsVersion "22.0.1" 18 | 19 | defaultConfig { 20 | applicationId "me.leolin.android.design.textinput" 21 | minSdkVersion 15 22 | targetSdkVersion 22 23 | versionCode 1 24 | versionName "1.0" 25 | } 26 | 27 | compileOptions { 28 | sourceCompatibility JavaVersion.VERSION_1_6 29 | targetCompatibility JavaVersion.VERSION_1_6 30 | } 31 | buildTypes { 32 | release { 33 | minifyEnabled false 34 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 35 | } 36 | } 37 | } 38 | 39 | dependencies { 40 | compile fileTree(dir: 'libs', include: ['*.jar']) 41 | compile 'com.android.support:appcompat-v7:22.2.0' 42 | compile 'com.android.support:design:22.2.0' 43 | } 44 | -------------------------------------------------------------------------------- /TextInputLayoutExample/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/leolin/work/sdk/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /TextInputLayoutExample/src/androidTest/java/me/coordinatorfloatingactiobbuttonsnacklayout/android/design/textinput/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.coordinatorfloatingactiobbuttonsnacklayout.android.design.textinput; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /TextInputLayoutExample/src/androidTest/java/me/leolin/android/design/textinput/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.textinput; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /TextInputLayoutExample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TextInputLayoutExample/src/main/java/me/leolin/android/design/textinput/MainActivity.java: -------------------------------------------------------------------------------- 1 | package me.leolin.android.design.textinput; 2 | 3 | import android.os.Bundle; 4 | import android.support.design.widget.TextInputLayout; 5 | import android.support.v7.app.AppCompatActivity; 6 | import android.text.TextUtils; 7 | import android.view.View; 8 | import android.widget.Button; 9 | 10 | 11 | public class MainActivity extends AppCompatActivity { 12 | 13 | private Button buttonSubmit; 14 | private TextInputLayout inputLayoutPassword; 15 | private TextInputLayout inputLayoutAccount; 16 | 17 | @Override 18 | protected void onCreate(Bundle savedInstanceState) { 19 | super.onCreate(savedInstanceState); 20 | setContentView(R.layout.activity_main); 21 | 22 | inputLayoutAccount = (TextInputLayout) findViewById(R.id.textInputAccount); 23 | inputLayoutPassword = (TextInputLayout) findViewById(R.id.textInputPassword); 24 | buttonSubmit = (Button) findViewById(R.id.btnSubmit); 25 | 26 | buttonSubmit.setOnClickListener(new View.OnClickListener() { 27 | @Override 28 | public void onClick(View v) { 29 | inputLayoutAccount.setError(null); 30 | inputLayoutPassword.setError(null); 31 | 32 | if (TextUtils.isEmpty(inputLayoutAccount.getEditText().getText().toString())) { 33 | inputLayoutAccount.setError("You must provide an Account"); 34 | inputLayoutAccount.requestFocus(); 35 | return; 36 | } 37 | 38 | if (TextUtils.isEmpty(inputLayoutPassword.getEditText().getText().toString())) { 39 | inputLayoutPassword.setError("You must provide Password"); 40 | inputLayoutPassword.requestFocus(); 41 | return; 42 | } 43 | } 44 | }); 45 | } 46 | 47 | 48 | } 49 | -------------------------------------------------------------------------------- /TextInputLayoutExample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 18 | 22 | 23 | 24 | 25 |