-
Notifications
You must be signed in to change notification settings - Fork 148
BeamBaseActivity
BeamBaseActivity是对BeamAppCompatActivity的功能拓展。所以建议使用BeamBaseActivity及下面2个模板型拓展
##视图拓展
* DecorView
* |
* LinearLayout
* / \
* / \
* FrameLayout FrameLayout
* | (mContentParent)
* | / \ \
* TextView FrameLayout 附加View1 附加View2
* (mContent)
* (在一开始就装入View树)
* |
* setContent()
* (什么时候装入View不确定)
BeamBaseActivity对ContentView多加了一层视图拓展层(mContentParent)。借此可以实现比如显示加载界面。显示错误页面。显示自定义覆盖图层等功能。
getExpansion().showProgressPage() getExpansion().dismissProgressPage()
getExpansion().showErrorPage() getExpansion().dismissErrorPage()
getExpansion().addCustomOverlayView(view) getExpansion().removeCustomOverlayView(view)
##Activity功能拓展
getExpansion()返回一个功能拓展类。Activity对自身功能的拓展委托给ViewExpansionDelegate这个类实现。这个类的功能也会持续增加。DefaultViewExpansionDelegate是对这些拓展的默认实现。也允许自定义这些方法的实现。重写createViewExpansionDelegate方法来为本Activity提供拓展类。
@Override
public ViewExpansionDelegate createViewExpansionDelegate() {
return super.createViewExpansionDelegate();
}
通过Beam全局设置默认ViewExpansionDelegate:
Beam.setViewExpansionDelegateProvider(new ViewExpansionDelegateProvider() {
@Override
public ViewExpansionDelegate createViewExpansionDelegate(BeamBaseActivity activity) {
return new PaddingTopViewExpansion(activity);
}
});
已拓展这些功能:
public void showProgressDialog(String title){}
public void dismissProgressDialog(){}
public View showProgressPage(){return null;}
public void dismissProgressPage(){}
public View showErrorPage(){return null;}
public void dismissErrorPage(){}
public void addCustomOverlayView(View view){}
public void removeCustomOverlayView(View view){}
##自动配置Toolbar
如果你使用了Toolbar。将他的id设为toolbar。然后你将不用再setSupportActionBar()。会自动处理,设置为可返回,并处理返回事件。如果你不需要返回按钮,调用getSupportActionBar().setDisplayHomeAsUpEnabled(false);取消即可。如果你没使用Toolbar。也不会有什么影响。
##findViewByid的便捷写法
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
等同于
Toolbar toolbar = $(R.id.toolbar)
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
等同于
Toolbar toolbar = $(view,R.id.toolbar)