如何在android中更改几个片段的自定义动作栏?

时间:2014-11-15 08:56:01

标签: android android-fragments android-actionbar customization

我正在构建一个使用tablayout的Android应用程序。

由MainActivity控制的tablayout作为swip动作,有名称等。

现在我想控制MainActivity中的custom-action-bar。

假设如果oneFragment已打开,则应该应用custome_action_bar_one。 当用户进入SecondFragment时,它会调用custome_action_bar_second。

以下是我正在使用的TabLayout代码:

package info.androidhive.tabsswipe.adapter;

public class TabsPagerAdapter extends FragmentPagerAdapter {

public TabsPagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int index) {

    switch (index) {
    case 0:
        // Top Rated fragment activity
        return new TopRatedFragment();
    case 1:
        // Games fragment activity
        return new GamesFragment();
    case 2:
        // Movies fragment activity
        return new MoviesFragment();
    }

    return null;
}

@Override
public int getCount() {
    // get item count - equal to number of tabs
    return 3;
}
}

以下是用于制作custome_action_bar的代码:

getActivity().getActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#0077d1")));
    ActionBar mActionBar = getActivity().getActionBar();
    getActivity().getActionBar().setIcon(
            new ColorDrawable(getResources().getColor(
                    android.R.color.transparent)));
    mActionBar.setDisplayShowHomeEnabled(true);
    mActionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(getActivity());
    View mCustomView = mInflater.inflate(R.layout.custom_actionbar2, null);
    mActionBar.setCustomView(mCustomView);
    mActionBar.setDisplayShowCustomEnabled(true);

这是我的片段代码:

getActivity().getActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#0077d1")));
    ActionBar mActionBar = getActivity().getActionBar();
    getActivity().getActionBar().setIcon(
            new ColorDrawable(getResources().getColor(
                    android.R.color.transparent)));
    mActionBar.setDisplayShowHomeEnabled(true);
    mActionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(getActivity());
    View mCustomView = mInflater.inflate(R.layout.custom_actionbar2, null);
    mActionBar.setCustomView(mCustomView);
    mActionBar.setDisplayShowCustomEnabled(true);
    ImageButton btnhst = (ImageButton) getActivity.findViewById(
            R.id.hstbtn);

1 个答案:

答案 0 :(得分:1)

@sonam你用过

ImageButton btnhst =(ImageButton) getActivity .findViewById(R.id.hstbtn);

使用 mCustomView .findViewById()

进行活动尝试

一切顺利