Kevin Su bio photo

Kevin Su

patience, persevere, and enjoy

Email Github Stackoverflow

关于[遇见动态模块]的实现
在5.5的版本中,主要实现动态.这个一个部分有几个重点难点
1. 布局比较复杂,单条动态可点击的区域很多.其中动态中的评论,分为名字可点击以及评论的内容可点击,需要用到SpanableString来实现.具体看代码的CommentItemView.java
2. 动态的图片显示,一张图片和多张图片显示的格式不同.需要自定义View来实现,根据图片的数量,初始化布局.具体看代码的MultiImageView.java
3. ListView的滑动,setSelection的方法是选中某条Item,把该Item置顶.而动态中,希望把item的底部置于最底,需求与setSelection方法不同.代码如下:

Note: 暂时没把发布动态的代码贴出来,等迟些把另外多图选取的功能实现再在那里贴出来吧

int firstIndex = prvDynamicList.getRefreshableView().getFirstVisiblePosition();
View currentView = prvDynamicList.getRefreshableView().getChildAt(position - firstIndex);
int currentViewHeight = currentView == null ? 0 : currentView.getHeight();
int listHeight = prvDynamicList.getRefreshableView().getHeight();
int offset = listHeight - currentViewHeight;
			
prvDynamicList.getRefreshableView().setSelectionFromTop(position, offset);
			
edInput.requestFocus();
MultiUtils.showInputMethod(MainActivity.this, edInput);

代码地址

图片展示:
image