没有AppCompatActivity的动作栏中的图像以及android:Theme.Holo.Light主题

时间:2015-09-02 13:44:36

标签: android android-actionbar

我想在动作栏的右上角放置一个图像(ImageView)。我不想使用AppCompatActivity库,因此我的MainActivity扩展了Activity而不是AppCompatActivity。 我使用主题:<style name="AppTheme" parent="android:Theme.Holo.Light">

我尝试使用此代码,但它不起作用,因为我没有扩展AppCompatActivity:

 actionBar = getSupportActionBar();
        actionBar.setDisplayShowCustomEnabled(true);

        LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflator.inflate(R.layout.custom_imageview, null);

        v1 = inflator.inflate(R.layout.custom_imageview1, null);

        actionBar.setCustomView(v);

编辑:我在运行Android 4.4.2的设备上运行此代码

2 个答案:

答案 0 :(得分:0)

您可以使用工具栏。它是你的最佳选择.Toolbar是Android Lollipop中引入的ActionBar的新标准替代品。它可以根据您的需要支持大量自定义,并且不需要或只需要对ActionBar逻辑进行修改。

或者您可以使用代码:`

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ActionBar mActionBar = getActionBar();
    mActionBar.setDisplayShowHomeEnabled(false);
    mActionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(this);

    View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null);
    TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
    mTitleTextView.setText("Title");

    ImageButton imageButton = (ImageButton) mCustomView
            .findViewById(R.id.imageButton);
    imageButton.setOnClickListener(new OnClickListener() {

        //if you want..You can set action
        }
    });`

答案 1 :(得分:0)

由于您使用的是简单Activity,因此您必须更改此行

actionBar = getSupportActionBar();

with(check the doc

actionBar = getActionBar();