Adroid应用中左右半屏功能的实现

在开发iNews的过程中用到了左右半屏的功能,这个功能也是目前非常多的APP中常见的功能。所以现在总结一套基于左右半屏的控件的开发模版,与各位同事交流一下。


在开发伊始选择控件的时候由于对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 };
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值