編輯:關於Android編程
現有的APP嘗試向Material Design靠齊,開始使用Toolbar代替之前的ActionBar。
Toolbar和ActionBar的直觀區別就是需要我們自己將ToolBar加到自己的布局文件中。目前的情況是:在我們的現有項目上改動,多數的Activity都是繼承一個BaseActivity。為了用最小的代價達到目的,簡單的思考之後,做了如下的改動:
/**
* 帶ToolBar的基類
*/
public class BaseActivity extends ActionBarActivity {
private static final int BASE_VIEW_ID = R.layout.activity_base;
private static final LayoutParams LAYOUT_PARAMS = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
private LinearLayout mParentView;
private Toolbar mToolBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
ViewUtils.startTranslucent(this);
super.onCreate(savedInstanceState);
setContentView(BASE_VIEW_ID);
}
@Override
public void setContentView(int layoutResID) {
if (BASE_VIEW_ID == layoutResID) {
super.setContentView(layoutResID);
mParentView = (LinearLayout) findViewById(R.id.base_parent_view);
mToolBar = (Toolbar) findViewById(R.id.toolbar);
initToolbar(mToolBar);
return;
}
mParentView.addView(getLayoutInflater().inflate(layoutResID, null), LAYOUT_PARAMS);
}
@Override
public void setContentView(View view) {
mParentView.addView(view, LAYOUT_PARAMS);
}
private void initToolbar(Toolbar toolbar) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
public Toolbar getToolBar() {
return mToolBar;
}
public void setBackground(int colorId) {
if (null != mParentView) {
mParentView.setBackgroundColor(getResources().getColor(colorId));
}
}
}
布局文件activity_base.xml:
在基類中添加如上代碼,基本可以用最小的改動達到使用Toolbar的目的。但是,這樣也存在一個問題,就是會使我們的每個Activity的布局層次多了一層。
android自定義進度條漸變色View的實例代碼
最近在公司,項目不是很忙了,偶爾看見一個兄台在CSDN求助,幫忙要一個自定義的漸變色進度條,我當時看了一下進度條,感覺挺漂亮的,就嘗試的去自定義view實現了一個,廢話不
限時搶購秒殺系統架構分析與實戰
1 秒殺業務分析正常電子商務流程(1)查詢商品;(2)創建訂單;(3)扣減庫存;(4)更新訂單;(5)付款;(6)賣家發貨秒殺業務的特性(1)低廉價格;(2)大幅推廣;(
堅果手機U1提高流暢度的辦法
堅果手機相信受到了很多朋友的關注,說不定就已經有不少朋友入手了。我們手機在滑動窗口的時候因為設置不同可能會導致窗口動畫縮放的速度不同,大家就就會覺得自己的手
Android網絡編程之獲取網絡上的XML
Android網絡編程之獲取網絡上的XML 請尊重他人的勞動成果,轉載請注明出處:Android網絡編程之獲取網絡上的XML 為要獲取網絡上的XML所以需要