2016-11-09 8 views
0

2つのフラグメントでアクティビティを作成していますが、私がそれに行くときに各フラグメントの色を変更したいと思います。 私はフラグメントツールバーの色を変更することができません

getActionBar() 

setColorDrawable() 

を試みたが、それはnullを返しています。 ここに私の活動と断片があります。

 public class MenuPage extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener { 


private TabLayout tabLayout; 
private ViewPager viewPager; 



public List<Food> orderedList = new ArrayList<>(); 



@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_menu_page); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


    viewPager = (ViewPager) findViewById(R.id.viewpager); 
    setupViewPager(viewPager); 

    tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 
} 

    private void setupViewPager(ViewPager viewPager) { 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new Veg(), "VEG"); 
    adapter.addFragment(new NonVeg(), "NON-VEG"); 
    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); 
    } 
} 
} 

とここに私のフラグメントは

public class Veg extends Fragment{ 

public Veg() { 
} 



public static Veg newInstance(String param1, String param2) { 
    Veg fragment = new Veg(); 
    Bundle args = new Bundle(); 
    args.putString(ARG_PARAM1, param1); 
    args.putString(ARG_PARAM2, param2); 
    fragment.setArguments(args); 
    return fragment; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (getArguments() != null) { 
     mParam1 = getArguments().getString(ARG_PARAM1); 
     mParam2 = getArguments().getString(ARG_PARAM2); 
    } 
} 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

}

で助けてください、私はこだわっています...

+0

どこ色の変更コードがフラグメントでありますか? – androidnoobdev

答えて

0

あなたがAppCompactActivityを使用しているとして、あなたはgetSupportActionBar()の代わりを使用する必要がありますgetActionBar()。あなたのフラグメントのツールバーにカスタムカラーを設定する

0

使用あなたのMenuPage活性のコード行

getSupportActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#00695C"))); 
+0

しかし、私はフラグメントを変更すると色を変更したい@ Sudip Podder –

+0

[this](https://gfycat.com/CautiousBewitchedJabiru)のようなものをお探しですか?その後、[このリンク](http://stackoverflow.com/a/26813188/5829624)に従います。 –

関連する問題