文章详情增加评论入口
This commit is contained in:
@ -101,7 +101,8 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
private static final int ITEM_COMMENT = 102;
|
||||
private static final int ITEM_FOOTER = 103;
|
||||
|
||||
public MessageDetailAdapter(MessageDetailActivity context, CommentDao commentDao, RecyclerView messageDetailRv) {
|
||||
public MessageDetailAdapter(MessageDetailActivity context, CommentDao commentDao, RecyclerView messageDetailRv ,
|
||||
ConcernEntity concernEntity) {
|
||||
this.mContext = context;
|
||||
this.mRecyclerView = messageDetailRv;
|
||||
|
||||
@ -123,17 +124,18 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
mHotCommentList = new ArrayList<>();
|
||||
mNormalCommentList = new ArrayList<>();
|
||||
|
||||
mConcernEntity = (ConcernEntity) AppController.get("ConcernEntity", true);
|
||||
mConcernEntity = concernEntity;
|
||||
|
||||
if (mConcernEntity.getCommentnum() != 0) {
|
||||
if (mConcernEntity != null && mConcernEntity.getCommentnum() != 0) {
|
||||
addHotComment(0);
|
||||
} else {
|
||||
notifyItemChanged(1);
|
||||
} else if (mConcernEntity != null) {
|
||||
isOver = true;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
mCallBackListener.showSoftInput();
|
||||
}
|
||||
}
|
||||
|
||||
private void addHotComment(int offset) {
|
||||
public void addHotComment(int offset) {
|
||||
|
||||
String hotCommentUrl = Config.COMMENT_HOST + "article/" + mConcernEntity.getId() +
|
||||
"/comment?order=hot&limit=" + 10 + "&offset=" + offset;
|
||||
@ -246,16 +248,6 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
||||
if (isRefreshPosition) {
|
||||
Timer timer = new Timer(); // 延迟半秒,防止出现闪屏现象
|
||||
timer.schedule(new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
mRecyclerView.smoothScrollBy(0, mConcernEntity.getItemHeight()); //定位到评论顶部
|
||||
}
|
||||
}, 500);
|
||||
isRefreshPosition = false;
|
||||
}
|
||||
if (holder instanceof NewsDigestViewHolder) {
|
||||
initNewsDigestViewHolder((NewsDigestViewHolder) holder);
|
||||
} else if (holder instanceof CommentViewHolder) {
|
||||
@ -287,36 +279,43 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
return itemCount + 1;
|
||||
}
|
||||
|
||||
boolean isGetRvHeight = true; // 防止评论时弹出软键盘 影响RecyclerView高度
|
||||
int rvHeight;
|
||||
|
||||
private void initFooterViewHolder(final FooterViewHolder viewHolder) {
|
||||
if (isGetRvHeight) {
|
||||
rvHeight = mRecyclerView.getHeight();
|
||||
isGetRvHeight = false;
|
||||
}
|
||||
LinearLayout.LayoutParams params;
|
||||
int height = 0;
|
||||
if (mRecyclerView.getChildCount() != 1 ) {
|
||||
for (int i = 0; i < mRecyclerView.getChildCount(); i++) {
|
||||
if ( i != 0 ){
|
||||
if ( i != 0 || mRecyclerView.getChildAt(0).getHeight() < 200){
|
||||
height = height + mRecyclerView.getChildAt(i).getHeight();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mRecyclerView.getHeight() - height < 100) {
|
||||
if (rvHeight - height < 100 || (mNormalCommentList.size() + mHotCommentList.size()) * 220 > rvHeight) {
|
||||
params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
((LinearLayout)viewHolder.itemView).setGravity(Gravity.CENTER);
|
||||
} else {
|
||||
params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, mRecyclerView.getHeight() - height);
|
||||
params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,rvHeight - height);
|
||||
((LinearLayout)viewHolder.itemView).setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
}
|
||||
viewHolder.itemView.setLayoutParams(params);
|
||||
((LinearLayout)viewHolder.itemView).setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
|
||||
if (!isOver) {
|
||||
if(isNetworkError) {
|
||||
viewHolder.loading.setVisibility(View.GONE);
|
||||
viewHolder.hint.setText("网络错误,点击重试!");
|
||||
}else if (!isOver) {
|
||||
viewHolder.hint.setText("加载中...");
|
||||
viewHolder.loading.setVisibility(View.VISIBLE);
|
||||
} else if (isNetworkError || mNormalCommentList.size() == 0 && mHotCommentList.size() == 0) {
|
||||
} else if ( mNormalCommentList.size() == 0 && mHotCommentList.size() == 0) {
|
||||
viewHolder.loading.setVisibility(View.GONE);
|
||||
if (isNetworkError) {
|
||||
viewHolder.hint.setText("网络错误,点击重试!");
|
||||
} else {
|
||||
viewHolder.itemView.setLayoutParams(params);
|
||||
viewHolder.itemView.setPadding(0, DisplayUtils.dip2px(mContext, 20), 0, 0);
|
||||
viewHolder.hint.setText("目前还没有评论");
|
||||
}
|
||||
viewHolder.itemView.setLayoutParams(params);
|
||||
viewHolder.itemView.setPadding(0, DisplayUtils.dip2px(mContext, 30), 0, 0);
|
||||
viewHolder.hint.setText("目前还没有评论");
|
||||
} else {
|
||||
if (mNormalCommentList.size() > 10) {
|
||||
viewHolder.hint.setText("没有更多评论啦");
|
||||
@ -339,7 +338,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
});
|
||||
}
|
||||
|
||||
private void initNewsDigestViewHolder(NewsDigestViewHolder viewHolder) {
|
||||
private void initNewsDigestViewHolder(final NewsDigestViewHolder viewHolder) {
|
||||
((CardLinearLayout) viewHolder.itemView).setmTop(DisplayUtils.dip2px(mContext, 8));
|
||||
((CardLinearLayout) viewHolder.itemView).setmBottom(DisplayUtils.dip2px(mContext, 4));
|
||||
|
||||
@ -433,6 +432,7 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
Intent intent = new Intent(mContext, WebActivity.class);
|
||||
intent.putExtra("url", mConcernEntity.getLink());
|
||||
intent.putExtra("gameName", mConcernEntity.getGameName());
|
||||
intent.putExtra("newsId", mConcernEntity.getId());
|
||||
mContext.startActivity(intent);
|
||||
} else {
|
||||
Intent intent = new Intent(mContext, NewsDetailActivity.class);
|
||||
@ -449,6 +449,22 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
mCallBackListener.showSoftInput();
|
||||
}
|
||||
});
|
||||
|
||||
viewHolder.itemView.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (isRefreshPosition) {
|
||||
Timer timer = new Timer(); // 延迟半秒,防止出现闪屏现象
|
||||
timer.schedule(new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
mRecyclerView.smoothScrollBy(0, viewHolder.itemView.getHeight()); //定位到评论顶部
|
||||
}
|
||||
}, 300);
|
||||
isRefreshPosition = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initCommentViewHolder(final CommentViewHolder holder, int position) {
|
||||
@ -641,10 +657,6 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
}
|
||||
}
|
||||
|
||||
public String getNewsId() {
|
||||
return mConcernEntity.getId();
|
||||
}
|
||||
|
||||
public boolean isLoading() {
|
||||
return isLoading;
|
||||
}
|
||||
@ -667,6 +679,10 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
return index;
|
||||
}
|
||||
|
||||
public void addConcernEntity(ConcernEntity concernEntity) {
|
||||
this.mConcernEntity = concernEntity;
|
||||
}
|
||||
|
||||
public boolean isOver() {
|
||||
return isOver;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user