Hi guy's
today i learn how to use Coordinator Layout and some basic ideas about App Bar Layout.Together,they can do some nice animated effect.In this occasion we'll see how to hide the toolbar while we start scrolling down and then show it again as soon as we start scrolling down.
This is new layout.
After we start do impotent things..
Define Dependency
activity_main.xml
today i learn how to use Coordinator Layout and some basic ideas about App Bar Layout.Together,they can do some nice animated effect.In this occasion we'll see how to hide the toolbar while we start scrolling down and then show it again as soon as we start scrolling down.
This is new layout.
After we start do impotent things..
Define Dependency
compile 'com.android.support:design:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
Now you create NewAndroidProject and all xml file
activity_main.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="slidenerd.vivz.navigationviewdemo.MainActivity">
<LinearLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/main_drawer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:itemIconTint="@color/colorAccent"
app:itemTextColor="@color/colorTextSecondary"
app:menu="@menu/menu_drawer" />
</android.support.v4.widget.DrawerLayout>
drawer_header.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="256dp"
android:background="@drawable/img_drawer_header"
android:alpha="0.8"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:padding="16dp"
android:gravity="right"
style="@style/TextAppearance.AppCompat.Title"
android:text="Hello Vivz" />
</FrameLayout>
custom_row.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="slidenerd.vivz.navigationviewdemo.ThirdActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
app:tabGravity="fill"
app:tabTextAppearance="@style/TextAppearance.Design.Tab"
app:tabSelectedTextColor="@color/colorAccent"
app:tabMode="scrollable" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
actvity_second.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root_activity_second"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="slidenerd.vivz.navigationviewdemo.SecondActivity">
<android.support.design.widget.TextInputLayout
android:id="@+id/email_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/input_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:hint="Email Address" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/password_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/email_layout">
<EditText
android:id="@+id/input_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:hint="Password"
android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/password_layout"
android:background="@color/colorAccent"
android:onClick="submit"
android:text="Login"
android:textColor="@android:color/white" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@drawable/ic_add_black"
app:borderWidth="2dp"
app:fabSize="mini"
app:rippleColor="@color/colorPrimaryDark" />
</RelativeLayout>
activity_fourth.xml
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="slidenerd.vivz.navigationviewdemo.FourthActivity"> <android.support.design.widget.CoordinatorLayout android:id="@+id/root_coordinator" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:id="@+id/app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:contentScrim="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways"> <ImageView android:layout_width="match_parent" android:layout_height="192dp" android:scaleType="centerCrop" android:src="@drawable/rsz_bg_cover" app:layout_collapseMode="parallax" /> <android.support.v7.widget.Toolbar android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:layout_collapseMode="pin" /> </android.support.design.widget.CollapsingToolbarLayout> <android.support.design.widget.CollapsingToolbarLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_scrollFlags="scroll|enterAlways"> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorAccent" app:layout_collapseMode="pin" app:tabIndicatorColor="@color/colorPrimary" app:tabSelectedTextColor="@android:color/white" app:tabTextColor="#EEE" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="16dp" android:src="@drawable/ic_add_black" app:borderWidth="0dp" app:fabSize="mini" /> </android.support.design.widget.CoordinatorLayout> <android.support.design.widget.NavigationView android:id="@+id/navigation_drawer" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:menu="@menu/menu_drawer" /> </android.support.v4.widget.DrawerLayout>
Now create a resources file......
color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#607D8B</color>
<color name="colorPrimaryDark">#455A64</color>
<color name="colorPrimaryLight">#CFD8DC</color>
<color name="colorAccent">#FFC107</color>
<color name="colorTextPrimary">#212121</color>
<color name="colorTextSecondary">#727272</color>
</resources>
string.xml
<resources>
<string name="app_name">Navigation View Demo</string> <string name="title_activity_main">Nav Demo</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string> <string name="navigation_item_1">Item 1</string> <string name="navigation_item_2">Item 2</string> <string name="navigation_item_3">Item 3</string> <string name="navigation_item_4">Item 4</string> <string name="navigation_item_5">Item 5</string> <string name="drawer_open">Open</string> <string name="drawer_close">Close</string> <string name="title_activity_second">Second</string> <string name="text_second_activity">Hi Its Second Activity Here</string> <string name="title_activity_third">Third</string> <string name="text_third_activity">Hi Its Third Activity</string> <string name="text_dismiss">Dismiss</string> <string name="title_activity_fourth">Mr Four</string></resources>
download this icon....
style.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/colorTextPrimary</item>
<item name="android:textColorSecondary">@color/colorTextSecondary</item>
</style>
</resources>
NOW I CREATE JAVA CLASSSES
MainActivity.java
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private static final String SELECTED_ITEM_ID = "selected_item_id";
private static final String FIRST_TIME = "first_time";
private Toolbar mToolbar;
private NavigationView mDrawer;
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mDrawerToggle;
private int mSelectedId;
private boolean mUserSawDrawer = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(mToolbar);
mDrawer = (NavigationView) findViewById(R.id.main_drawer);
mDrawer.setNavigationItemSelectedListener(this);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(this,
mDrawerLayout,
mToolbar,
R.string.drawer_open,
R.string.drawer_close);
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
if (!didUserSeeDrawer()) {
showDrawer();
markDrawerSeen();
} else {
hideDrawer();
}
mSelectedId = savedInstanceState == null ? R.id.navigation_item_1 : savedInstanceState.getInt(SELECTED_ITEM_ID);
navigate(mSelectedId);
}
private boolean didUserSeeDrawer() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
mUserSawDrawer = sharedPreferences.getBoolean(FIRST_TIME, false);
return mUserSawDrawer;
}
private void markDrawerSeen() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
mUserSawDrawer = true;
sharedPreferences.edit().putBoolean(FIRST_TIME, mUserSawDrawer).apply();
}
private void showDrawer() {
mDrawerLayout.openDrawer(GravityCompat.START);
}
private void hideDrawer() {
mDrawerLayout.closeDrawer(GravityCompat.START);
}
private void navigate(int mSelectedId) {
Intent intent = null;
if (mSelectedId == R.id.navigation_item_2) {
mDrawerLayout.closeDrawer(GravityCompat.START);
intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
if (mSelectedId == R.id.navigation_item_3) {
mDrawerLayout.closeDrawer(GravityCompat.START);
intent = new Intent(this, ThirdActivity.class);
startActivity(intent);
}
if (mSelectedId == R.id.navigation_item_4) {
mDrawerLayout.closeDrawer(GravityCompat.START);
intent = new Intent(this, FourthActivity.class);
startActivity(intent);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
mSelectedId = menuItem.getItemId();
navigate(mSelectedId);
return true;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(SELECTED_ITEM_ID, mSelectedId);
}
@Override
public void onBackPressed() {
if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
mDrawerLayout.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
}
SecondActivity.java
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.RelativeLayout;
public class SecondActivity extends ActionBarActivity {
private RelativeLayout mRoot;
private TextInputLayout mEmailLayout;
private TextInputLayout mPasswordLayout;
private EditText mInputEmail;
private EditText mInputPassword;
private FloatingActionButton mFAB;
private View.OnClickListener mSnackBarClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
}
};
private View.OnClickListener mFabClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(mRoot, "FAB Clicked", Snackbar.LENGTH_SHORT)
.show();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
mRoot = (RelativeLayout) findViewById(R.id.root_activity_second);
mEmailLayout = (TextInputLayout) findViewById(R.id.email_layout);
mPasswordLayout = (TextInputLayout) findViewById(R.id.password_layout);
mInputEmail = (EditText) findViewById(R.id.input_email);
mInputPassword = (EditText) findViewById(R.id.input_password);
mFAB = (FloatingActionButton) findViewById(R.id.fab);
mFAB.setOnClickListener(mFabClickListener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_second, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void submit(View view) {
boolean isEmptyEmail = isEmptyEmail();
boolean isEmptyPassword = isEmptyPassword();
if (isEmptyEmail && isEmptyPassword) {
Snackbar.make(mRoot, "One Or More Fields Are Blank", Snackbar.LENGTH_SHORT)
.setAction(getString(R.string.text_dismiss), mSnackBarClickListener)
.show();
} else if (isEmptyEmail && !isEmptyPassword) {
mEmailLayout.setError("Email Cannot Be Empty");
mPasswordLayout.setError(null);
} else if (!isEmptyEmail && isEmptyPassword) {
mPasswordLayout.setError("Password Cannot Be Empty");
mEmailLayout.setError(null);
} else {
//All Good Here
}
}
private boolean isEmptyEmail() {
return mInputEmail.getText() == null
|| mInputEmail.getText().toString() == null
|| mInputEmail.getText().toString().isEmpty();
}
private boolean isEmptyPassword() {
return mInputPassword.getText() == null
|| mInputPassword.getText().toString() == null
|| mInputPassword.getText().toString().isEmpty();
}
}
ThirdActivity.java
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class ThirdActivity extends AppCompatActivity {
private Toolbar mToolbar;
private TabLayout mTabLayout;
private ViewPager mPager;
private MyPagerAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
mAdapter = new MyPagerAdapter(getSupportFragmentManager());
mToolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(mToolbar);
mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mTabLayout.setTabsFromPagerAdapter(mAdapter);
mTabLayout.setupWithViewPager(mPager);
mPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_third, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public static class MyFragment extends Fragment {
public static final java.lang.String ARG_PAGE = "arg_page";
public MyFragment() {
}
public static MyFragment newInstance(int pageNumber) {
MyFragment myFragment = new MyFragment();
Bundle arguments = new Bundle();
arguments.putInt(ARG_PAGE, pageNumber + 1);
myFragment.setArguments(arguments);
return myFragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle arguments = getArguments();
int pageNumber = arguments.getInt(ARG_PAGE);
TextView myText = new TextView(getActivity());
myText.setText("Hello I am the text inside this Fragment " + pageNumber);
myText.setGravity(Gravity.CENTER);
return myText;
}
}
}
class MyPagerAdapter extends FragmentStatePagerAdapter {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
ThirdActivity.MyFragment myFragment = ThirdActivity.MyFragment.newInstance(position);
return myFragment;
}
@Override
public int getCount() {
return 10;
}
@Override
public CharSequence getPageTitle(int position) {
return "Tab " + (position + 1);
}
}
FourthActivity.java
import android.content.Context;
import android.os.Bundle;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
public class FourthActivity extends AppCompatActivity {
// Need this to link with the Snackbar
private CoordinatorLayout mCoordinator;
//Need this to set the title of the app bar
private CollapsingToolbarLayout mCollapsingToolbarLayout;
private FloatingActionButton mFab;
private Toolbar mToolbar;
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mDrawerToggle;
private ViewPager mPager;
private YourPagerAdapter mAdapter;
private TabLayout mTabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fourth);
mCoordinator = (CoordinatorLayout) findViewById(R.id.root_coordinator);
mCollapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar_layout);
mFab = (FloatingActionButton) findViewById(R.id.fab);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mToolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(mToolbar);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, R.string.drawer_open, R.string.drawer_close);
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
mAdapter = new YourPagerAdapter(getSupportFragmentManager());
mPager = (ViewPager) findViewById(R.id.view_pager);
mPager.setAdapter(mAdapter);
//Notice how the Tab Layout links with the Pager Adapter
mTabLayout.setTabsFromPagerAdapter(mAdapter);
//Notice how The Tab Layout adn View Pager object are linked
mTabLayout.setupWithViewPager(mPager);
mPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
mFab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Notice how the Coordinator Layout object is used here
Snackbar.make(mCoordinator, "FAB Clicked", Snackbar.LENGTH_SHORT).setAction("DISMISS", null).show();
}
});
//Notice how the title is set on the Collapsing Toolbar Layout instead of the Toolbar
mCollapsingToolbarLayout.setTitle(getResources().getString(R.string.title_activity_fourth));
}
public static class MyFragment extends Fragment {
public static final java.lang.String ARG_PAGE = "arg_page";
public MyFragment() {
}
public static MyFragment newInstance(int pageNumber) {
MyFragment myFragment = new MyFragment();
Bundle arguments = new Bundle();
arguments.putInt(ARG_PAGE, pageNumber + 1);
myFragment.setArguments(arguments);
return myFragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Bundle arguments = getArguments();
int pageNumber = arguments.getInt(ARG_PAGE);
RecyclerView recyclerView = new RecyclerView(getActivity());
recyclerView.setAdapter(new YourRecyclerAdapter(getActivity()));
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
return recyclerView;
}
}
}
class YourPagerAdapter extends FragmentStatePagerAdapter {
public YourPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
FourthActivity.MyFragment myFragment = FourthActivity.MyFragment.newInstance(position);
return myFragment;
}
@Override
public int getCount() {
return 4;
}
@Override
public CharSequence getPageTitle(int position) {
return "Tab " + (position + 1);
}
}
class YourRecyclerAdapter extends RecyclerView.Adapter<YourRecyclerAdapter.YourRecyclerViewHolder> {
private ArrayList<String> list = new ArrayList<>();
private LayoutInflater inflater;
public YourRecyclerAdapter(Context context) {
inflater = LayoutInflater.from(context);
list.add("Samset");
list.add("A.I.M.");
list.add("Samset");
list.add("Abin");
list.add("Abomination");
list.add("Samset");
list.add("Absorbing");
list.add("Adam");
list.add("Agent Bob");
list.add("Agent Zero");
list.add("Air Walker");
list.add("Samset");
list.add("Alan Scott");
list.add("Alex Mercer");
list.add("Alex Woolsly");
list.add("Alfred Pennyworth");
list.add("Allan Quartermain");
list.add("Samset");
list.add("Ammo Ando");
list.add("Masahashi Angel");
list.add("Angel Dust");
list.add("Samset");
list.add("A-Bomb");
list.add("Abe");
list.add("Abin");
list.add("Abomination");
list.add("Abraxas");
list.add("Samset");
list.add("Adam");
list.add("Agent Bob");
list.add("Agent Zero");
list.add("Samset");
list.add("Ajax");
list.add("Alan Scott");
list.add("Alex Mercer");
list.add("Alex Woolsly");
list.add("Samset");
list.add("Allan Quartermain");
list.add("Amazo");
list.add("Ammo Ando");
list.add("Masahashi Angel");
list.add("Samset");
list.add("Samset");
}
@Override
public YourRecyclerViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View root = inflater.inflate(R.layout.custom_row, viewGroup, false);
YourRecyclerViewHolder holder = new YourRecyclerViewHolder(root);
return holder;
}
@Override
public void onBindViewHolder(YourRecyclerViewHolder yourRecyclerViewHolder, int i) {
yourRecyclerViewHolder.textView.setText(list.get(i));
}
@Override
public int getItemCount() {
return list.size();
}
static class YourRecyclerViewHolder extends RecyclerView.ViewHolder {
TextView textView;
public YourRecyclerViewHolder(View itemView) {
super(itemView);
textView = (TextView) itemView.findViewById(R.id.text_superhero);
}
}
}
androidMeinifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.cordinatedemo" >
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SecondActivity"
android:label="@string/title_activity_second" />
<activity
android:name=".ThirdActivity"
android:label="@string/title_activity_third" />
<activity
android:name=".FourthActivity"
android:label="@string/title_activity_fourth" >
</activity>
</application>
</manifest>
Finally see output...............
No comments:
Post a Comment