Merge branch '2.2' of https://git.oschina.net/dreamhua/GH-ASSISTv1.45 into 2.2
Conflicts: app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java
This commit is contained in:
@ -6,6 +6,7 @@ import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.text.Html;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@ -61,6 +62,8 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
/**
|
||||
* Created by khy on 2016/11/8.
|
||||
@ -72,6 +75,10 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
|
||||
private ConcernEntity mConcernEntity;
|
||||
|
||||
private OnCommentCallBackListener mCallBackListener;
|
||||
|
||||
private RecyclerView mRecyclerView;
|
||||
|
||||
private List<CommentEntity> mHotCommentList;
|
||||
private List<CommentEntity> mNormalCommentList;
|
||||
|
||||
@ -86,14 +93,18 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
private boolean isOver;
|
||||
private boolean isLoading;
|
||||
private boolean isNetworkError;
|
||||
private boolean isRefreshPosition;
|
||||
|
||||
private static final int ITEM_TOP = 100;
|
||||
private static final int ITEM_TITLE = 101;
|
||||
private static final int ITEM_COMMENT = 102;
|
||||
private static final int ITEM_FOOTER = 103;
|
||||
|
||||
public MessageDetailAdapter(MessageDetailActivity context, CommentDao commentDao) {
|
||||
public MessageDetailAdapter(MessageDetailActivity context, CommentDao commentDao, RecyclerView messageDetailRv) {
|
||||
this.mContext = context;
|
||||
this.mRecyclerView = messageDetailRv;
|
||||
|
||||
mCallBackListener = context;
|
||||
|
||||
mVoteDao = new VoteDao(context);
|
||||
mCommentDao = commentDao;
|
||||
@ -106,13 +117,19 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
isOver = false;
|
||||
isLoading = false;
|
||||
isNetworkError = false;
|
||||
isRefreshPosition = true;
|
||||
|
||||
mHotCommentList = new ArrayList<>();
|
||||
mNormalCommentList = new ArrayList<>();
|
||||
|
||||
mConcernEntity = (ConcernEntity) AppController.get("ConcernEntity", true);
|
||||
|
||||
addHotComment(0);
|
||||
if (mConcernEntity.getCommentnum() != 0) {
|
||||
addHotComment(0);
|
||||
} else {
|
||||
notifyItemChanged(1);
|
||||
mCallBackListener.showSoftInput();
|
||||
}
|
||||
}
|
||||
|
||||
private void addHotComment(int offset) {
|
||||
@ -228,6 +245,16 @@ 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) {
|
||||
@ -260,24 +287,41 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
}
|
||||
|
||||
private void initFooterViewHolder(final FooterViewHolder viewHolder) {
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
LinearLayout.LayoutParams params;
|
||||
int height = 0;
|
||||
if (mRecyclerView.getChildCount() != 1 ) {
|
||||
for (int i = 0; i < mRecyclerView.getChildCount(); i++) {
|
||||
if ( i != 0 ){
|
||||
height = height + mRecyclerView.getChildAt(i).getHeight();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mRecyclerView.getHeight() - height < 100) {
|
||||
params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
} else {
|
||||
params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, mRecyclerView.getHeight() - height);
|
||||
}
|
||||
viewHolder.itemView.setLayoutParams(params);
|
||||
((LinearLayout)viewHolder.itemView).setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
|
||||
if (!isOver) {
|
||||
viewHolder.hint.setText("加载中...");
|
||||
viewHolder.loading.setVisibility(View.VISIBLE);
|
||||
} else if (isNetworkError || mNormalCommentList.size() == 0 && mHotCommentList.size() == 0) {
|
||||
viewHolder.loading.setVisibility(View.GONE);
|
||||
params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(mContext, 185));
|
||||
if (isNetworkError) {
|
||||
viewHolder.hint.setText("网络错误,点击重试!");
|
||||
} else {
|
||||
viewHolder.itemView.setLayoutParams(params);
|
||||
viewHolder.itemView.setPadding(0, DisplayUtils.dip2px(mContext, 20), 0, 0);
|
||||
viewHolder.hint.setText("目前还没有评论");
|
||||
}
|
||||
} else {
|
||||
viewHolder.hint.setText("没有更多评论啦..");
|
||||
if (mNormalCommentList.size() > 10) {
|
||||
viewHolder.hint.setText("没有更多评论啦");
|
||||
} else {
|
||||
viewHolder.hint.setText("");
|
||||
}
|
||||
viewHolder.loading.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@ -397,6 +441,13 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
viewHolder.comment.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mCallBackListener.showSoftInput();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initCommentViewHolder(final CommentViewHolder holder, int position) {
|
||||
@ -622,4 +673,8 @@ public class MessageDetailAdapter extends RecyclerView.Adapter<RecyclerView.View
|
||||
public boolean isOver() {
|
||||
return isOver;
|
||||
}
|
||||
|
||||
public interface OnCommentCallBackListener {
|
||||
void showSoftInput();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user