XML : Change navigation color on every different tab using ViewPager

Hello This question might have been asked but I am unable to find the answer to my question. I recently worked on a viewpage template using the following tutorial: http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

This tutorail is great but now I am trying to make it so each time the user swipes to a different tab the top bar changes color. I tried adding a new style and trying to set the activity theme to a different color but no luck. If you have any ideas please help.

I have created another setupViewpage (setupViewPage2) to change between seen two and one tab when pressing the fab button that came with the template.

Java:

  package com.example.reasults.materialpagerdesign;    import android.graphics.Color;  import android.os.Bundle;  import android.support.design.widget.FloatingActionButton;  import android.support.design.widget.Snackbar;  import android.support.v7.app.AppCompatActivity;  import android.support.v7.widget.Toolbar;  import android.support.design.widget.TabLayout;  import android.support.v4.app.Fragment;  import android.support.v4.app.FragmentManager;  import android.support.v4.app.FragmentPagerAdapter;  import android.support.v4.view.ViewPager;  import android.view.View;  import android.view.Menu;  import android.view.MenuItem;  import java.util.ArrayList;  import java.util.List;  import android.app.Activity;  import com.example.reasults.materialpagerdesign.OneFragment;    public class MainActivity extends AppCompatActivity {        private Toolbar toolbar;      private TabLayout tabLayout;      private ViewPager viewPager;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          toolbar = (Toolbar) findViewById(R.id.toolbar);          setSupportActionBar(toolbar);            getSupportActionBar().setDisplayHomeAsUpEnabled(false);            viewPager = (ViewPager) findViewById(R.id.viewpager);          setupViewPager(viewPager);            tabLayout = (TabLayout) findViewById(R.id.tabs);          tabLayout.setupWithViewPager(viewPager);            FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);          fab.setOnClickListener(new View.OnClickListener() {              @Override              public void onClick(View view) {                  Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)                          .setAction("Action", null).show();                  viewPager = (ViewPager) findViewById(R.id.viewpager);                  setupViewPager2(viewPager);                    tabLayout = (TabLayout) findViewById(R.id.tabs);                  tabLayout.setupWithViewPager(viewPager);              }          });      }        private void setupViewPager(ViewPager viewPager) {          ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());          adapter.addFragment(new OneFragment(), "ONE");          //adapter.addFragment(new TwoFragment(), "Two");          viewPager.setAdapter(adapter);      }        private void setupViewPager2(ViewPager viewPager) {          ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());          adapter.addFragment(new OneFragment(), "ONE");          adapter.addFragment(new TwoFragment(), "Two");          viewPager.setAdapter(adapter);      }        class ViewPagerAdapter extends FragmentPagerAdapter {          private final List<Fragment> mFragmentList = new ArrayList<>();          private final List<String> mFragmentTitleList = new ArrayList<>();            public ViewPagerAdapter(FragmentManager manager) {              super(manager);          }            @Override          public Fragment getItem(int position) {              return mFragmentList.get(position);          }            @Override          public int getCount() {              return mFragmentList.size();          }            public void addFragment(Fragment fragment, String title) {              mFragmentList.add(fragment);              mFragmentTitleList.add(title);          }            @Override          public CharSequence getPageTitle(int position) {              return mFragmentTitleList.get(position);          }      }        @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);      }  }    

style.xml

  <resources>      <!-- Base application theme. -->      <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">          <!-- Customize your theme here. -->          <item name="windowNoTitle">true</item>          <item name="windowActionBar">false</item>          <item name="colorPrimary">@color/colorPrimary</item>          <item name="colorPrimaryDark">@color/colorPrimaryDark</item>          <item name="colorAccent">@color/colorAccent</item>      </style>        <style name="AppThemeTwo" parent="Theme.AppCompat.Light.DarkActionBar">          <!-- Customize your theme here. -->          <item name="windowNoTitle">true</item>          <item name="windowActionBar">false</item>          <item name="colorPrimary">#4DAC26</item>          <item name="colorPrimaryDark">#4DAC26</item>          <item name="colorAccent">@color/colorAccent</item>      </style>        <style name="AppTheme.NoActionBar">          <item name="windowActionBar">false</item>          <item name="windowNoTitle">true</item>      </style>      <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />      <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />    </resources>    

No comments:

Post a Comment