1.接下来我将陆续更新关于 ViewPager与Fragment结合使用实现新闻类app的基本框架,今天是第一部分(例:今日头条,搜狐新闻 ......)
不废话了,下面直接上代码:
//该类为我们的标题栏的自定义View
public class MyLinearLayout extends LinearLayout {
public MyLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
//自定义属性:
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyLinearLayout);
title_visible_count = array.getInteger(R.styleable.MyLinearLayout_linear_my_view_count, 0);
//获取屏幕的宽和高
getScreenSize();
}
private static float layoutWidth, layoutHeight;
private static int title_visible_count;
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
/* 重写onMeasure()方法是为了能适配不同大小的机型,如果我们不重写该方法,在4.0英寸的手机上和5.5英
寸的手机上都使用同一个height,那给用户的感觉肯定是不舒服的,所以我们能通过该方法实现一点简单的适配
功能,当然如果你刚开始学习自定义View,那你可以不用重写该方法,直接在xml中的height值写成固定值就可以了。
*/
Log.d("zt", "onmeasure");
int getWidthpx, widthMode, getHeightpx, heightMode;
getWidthpx = MeasureSpec.getSize(widthMeasureSpec);
widthMode = MeasureSpec.getMode(widthMeasureSpec);
getHeightpx = MeasureSpec.getSize(heightMeasureSpec);
heightMode = MeasureSpec.getMode(heightMeasureSpec);
/* 该出Mode一共有3中,EXACTLY,AT_MOST,UNSPECIFIED;其中当我们在xml中设置了width或者height为match_parent或者某个
固定值时,那么这个Mode就是EXACTLY,如果设置成wrap_content的话,那么这个Mode就是AT_MOST, UNSPECIFIED是什么我也不太清楚,
如果你用过这个值,可以告诉留言告诉我啊!哈哈!*/
if (widthMode == MeasureSpec.EXACTLY) {
//当xml中width被设置成了固定的值或者设置成match_parent那么我们就直接用