主界面的UI与设计
现在一般的项目都是底部几个按钮对应这几个fragment这种情况,这种大体上可以有2种写法
- FragmentTabHost/(RadiuGroup+RadiuButton)等等一些底部按钮+Fragment来展示
- 一些底部按钮+ViewPager+Fragment来实现
这两种我个人更喜欢使用的是第二种,并且在最近的项目中也是用第二种方式来实现的,如果产品说底部按钮对应的页面是不能够滑动的,那么两种没什么区别,(viewPager可以禁止滑动来实现)可后来如果产品又说需要滑动了,那如果用第一种实现的就傻了,而第二种默认就是可以滑动的只需要简单的修改一下就可以
public class ViewPagerMain extends ViewPager{
private boolean mIsScroll=true;//通过这个值来判断是否需要禁止滑动
public ViewPagerMain(Context context) {
super(context);
}
public ViewPagerMain(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (mIsScroll==true){
return super.onInterceptTouchEvent(ev);
}else{
return mIsScroll;
}
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (mIsScroll==true){
return super.onTouchEvent(ev);
}else{
return mIsScroll;
}
}
public void setIsScroll(boolean isScroll){
mIsScroll = isScroll;
}
}
至于底部的那些按钮我并没有使用上面的一些Android原生控件,而是通过
布局文件自己摆放,我个人认为这样的话扩展性更高一些,当然这只是一部分原因后面的代码大家可以看到这么写的好处
底部xml
<LinearLayout
android:id="@+id/main_bottom_root"
android:layout_width="match_parent"
android:layout_height="@dimen/y96"
android:background="#fff"
>
<LinearLayout
android:id="@+id/home_root"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
>
<ImageView
android:id="@+id/iv_home"
style="@style/bottom_iv"
android:background="@drawable/home_selector"
/>
<TextView