Android

Android 空白界面处理

2017-02-24  本文已影响62人  Flynn_X

      Android软件中对于一个列表界面当服务器无数据或者,服务器异常,无网络等情况下时,总需要一些图片和文字加以提醒。如下图:


       博主最近就遇到麻烦事,软件开发的前期产品没有设计无数据,网络错误等界面样式,所以自己加了文字提醒,后面产品完善了,产品经理同时ui设计了图片加文字很美观的界面。现在activity都不下50个,这就头大了,要改可要老命,而且传统方法就是在界面上编写无数据xml 代码,最多写通用的然后各界面include 的,后面初始化控件各种判断,这可要真要老命,更要命的是代码太容易耦合了,是个麻烦事。

          科技为什么会进步呢————人懒。代码为神马会越写越简洁————同样是懒。

本着这个心态我研究着怎么去写一个通用的无数据页面,我的想法是可以加载到任意界面,不管是activity 还是 fragment  还是其他界面。我们来回想下能在原有界面上加布局的有哪些方法。

activity中:addContentView  ViewGroup 的addView 

fragment中:只有ViewGroup 的addView

要解决这个问题看来只能从viewgrop下手了。至于addviewcontent 是什么鬼,他和setcontentview 区别可以左转百度或者谷歌。viewgroup 有哪些:linerlayout relatelayout......四大组件都是吧,还有很多控件也是向listview,scrollview 等等,要做到通用就必须你的方法在这些组件下都可以做到显示效果没问题。先看效果:


Android空白界面处理效果

核心代码如下:

pravite void showExceptionMsgLayout(ViewGroup vg, String hint,int res){

final View view = LayoutInflater.from(this).inflate(R.layout.exception_layout, null);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

LinearLayout outLayout = (LinearLayout) view.findViewById(R.id.outLayout);

outLayout.setLayoutParams(layoutParams);

LinearLayout layout = (LinearLayout) view.findViewById(R.id.layout);

ImageView image = (ImageView) view.findViewById(R.id.image);

TextView btn = (TextView) view.findViewById(R.id.btn);

btn.setText(hint);

image.setImageResource(res));

}

上一篇 下一篇

猜你喜欢

热点阅读