在开发iNews的过程中用到了左右半屏的功能,这个功能也是目前非常多的APP中常见的功能。所以现在总结一套基于左右半屏的控件的开发模版,与各位同事交流一下。
在开发伊始选择控件的时候由于对Android不太熟悉,所以主要是参考网络上的一些资源,所以目前如果有其他的建议或者更好的控件,欢迎大家提出,谢谢!
对于左右半屏的应用,主要分为3部分,左屏视图(LeftView),中间主视图(MainView),右屏视图(RightView)。在最底层通过一个HorizontalVIew来组织,通过scroll方法实现半屏的滑动效果。
在开发伊始选择控件的时候由于对Android不太熟悉,所以主要是参考网络上的一些资源,所以目前如果有其他的建议或者更好的控件,欢迎大家提出,谢谢!
对于左右半屏的应用,主要分为3部分,左屏视图(LeftView),中间主视图(MainView),右屏视图(RightView)。在最底层通过一个HorizontalVIew来组织,通过scroll方法实现半屏的滑动效果。
接下来主要介绍下具体代码和界面配置文件:
代码文件包括:MainActivity.java,ISizeCallBack.java,SizeCallBackForMenu.java,MenuHorizontalScrollView.java,SlidingLinearLayout.java
界面配置文件(放置在layout目录下):activity_main,xml,main_view.xml,left_view.xml,right_view.xml
MainActivity.java
public class MainActivity extends BaseAcitity implements View.OnClickListener {
private MenuHorizontalScrollView scrollView = null;
private View mainView = null;
private LinearLayout slidLeftView = null;
private LinearLayout slidRightView = null;
private Button showLeftButton = null;
private Button showRightButton = null;
// 左侧按钮单击事件
OnClickListener leftBtnListener = new OnClickListener() {
@Override
public void onClick(View v) {
slidLeftView.setVisibility(View.VISIBLE);
scrollView.clickLeftMenuBtn();
slidRightView.setVisibility(View.INVISIBLE);
}
};
// 右侧按钮单击事件
OnClickListener rightBtnListener = new OnClickListener() {
@Override
public void onClick(View v) {
siteListScrollView.clickRightMenuBtn();
}
};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inflater = LayoutInflater.from(this);
try {
// 半屏控件
scrollView = (MenuHorizontalScrollView) findViewById(R.id.scrollView);
slidLeftView = (LinearLayout) findViewById(R.id.slide_left);
slidRightView = (LinearLayout) findViewById(R.id.slide_right);
slidRightView.setVisibility(View.INVISIBLE);
// MainView
inflater = LayoutInflater.from(this);
mainView = inflater.inflate(R.layout.main_view, null);
showLeftButton = (Button) mainView
.findViewById(R.id.left_view_button);
scrollView.setLeftMenuBtn(showLeftButton);
showLeftButton.setOnClickListener(leftBtnListener);
sysSettingButton = (Button) mainView
.findViewById(R.id.right_view_button);
scrollView.setRightMenuBtn(showRightButton);
showRightButton.setOnClickListener(rightBtnListener);
// 初始化左右半屏控件
View leftView = new View(this);
leftView.setBackgroundColor(Color.TRANSPARENT);
View rightView = new View(this);
rightView.setBackgroundColor(Color.TRANSPARENT);
View[] children = new View[] { leftView, newsPagerContainer,
rightView };