发表于: 2018-12-01 21:03:24
0 905
一、今天完成的事情
在RecyclerView中插入时间节点,时间下面是当日的新闻列表
比如:
2018年12月01日
新闻1
新闻2
新闻3
......
2018年11月30日
新闻1
新闻2
新闻3
......
新闻1
新闻2
新闻3
......
2018年11月30日
新闻1
新闻2
新闻3
......
方法:
其实我这里用的是一个取巧的办法,在创建和刷新list时将时额外添加一个对象进去,这个对象里里只有日期和类型(type),RecyclerView的adapter中对对象的类型进行判断,返回不同的布局,加载不同的内容,
@Override
public int getItemViewType(int position) {
if (mNewsList.get(position).getType() == -1) {
return TYPE_DATE;
} else {
return TYPE_NORMAL;
}
}
效果:
VIew和ViewGroup
在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的。View是绘制在屏幕上的用户能与之交互的一个对象。而ViewGroup则是一个用于存放其他View(和ViewGroup)对象的布局容器! Android为我们提供了一个View和ViewGroup子类的集合,集合中提供了一些常用的输入控件(比如按钮和文本域)和各种各样的布局模式(比如线性或相对布局),APP的用户界面上的每一个组件都是使用View和ViewGroup对象的层次结构来构成的,比如 图 1。每个ViewGroup都是要给看不见的用于组织子View的容器,而它的子View可能是输入控件 或者在UI上绘制了某块区域的小部件。有了层次树,你就可以根据自己的需要,设计简单或者复 杂的布局了(布局越简单性能越好)。
一般来说,开发Android应用程序的UI界面都不会直接实用View和ViewGroup,而是使用这两大基类的派生类。
View派生出的直接子类有:
AnalogClock,ImageView,KeyboardView,ProgressBar,SurfaceView,TextView,ViewGroup,ViewStub
View派生出的间接子类有:
AbsListView,AbsSeekBar, AbsSpinner, AbsoluteLayout, AdapterView<T extends Adapter>,AdapterViewAnimator, AdapterViewFlipper, AppWidgetHostView, AutoCompleteTextView,Button,CalendarView, CheckBox, CheckedTextView, Chronometer, CompoundButton,
ViewGroup派生出的直接子类有:
AbsoluteLayout,AdapterView<T extends Adapter>,FragmentBreadCrumbs,FrameLayout,LinearLayout,RelativeLayout,SlidingDrawer
ViewGroup派生出的间接子类有:
AbsListView,AbsSpinner, AdapterViewAnimator, AdapterViewFlipper, AppWidgetHostView, CalendarView, DatePicker, DialerFilter, ExpandableListView, Gallery, GestureOverlayView,GridView,HorizontalScrollView, ImageSwitcher,ListView,
Android View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。 View是基类,ViewGroup是它的子类。这就证明了一点,View代表了用户界面组件的一块可绘制的空间块。每一个View在屏幕上占据一个长方 形区域。在这个区域内,这个VIEW对象负责图形绘制和事件处理。View是小控件widgets和ViewGroup的父类。ViewGroup又是 Layout的基类。
二、明天的计划
android的缓存机制
三、遇到的问题
自动播放的速度还是有问题,有时会很快
四、收获
虽然想了半天终于实现了显示新闻时间这个效果,但是总觉得这是一种投机的方法
评论