android.support.v7.app.AppCompatActivity

时间:2020-12-25 14:39:24

1、Android Studio (api 23) 新建项目的时候 Activity


public class MainActivity extends AppCompatActivity

2、系统默认样式

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>

3、运行就可以看到ActionBar,下面的问题是我们如何来自定义ActionBar来完成我们的任务

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
ActionBar actionBar = getSupportActionBar();
1)使用自定义view
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setCustomView(R.layout.layout);
View actionView = actionBar.getCustomView();
actionView.findViewById(R.id.actionBarUp).setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
LogUtil.i("test","actionview");
}
});

2)就使用系统的view

actionBar.setHomeButtonEnabled(true);
/*
* 在应用程序图标的左边显示一个向左的箭头,
*
* 并且将HomeButtonEnabled设为true。
*
* 默认为false。
*/
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDefaultDisplayHomeAsUpEnabled(true);
//换个图标
actionBar.setHomeAsUpIndicator(R.mipmap.ic_left_x);

3)  加个事件

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
showClick();
break;
case R.id.mnu_refresh: break;
default:
break;
}
return super.onOptionsItemSelected(item);
}