pk房完成,剩余禁止对方麦未完成

拍卖房完成
点歌房完成,音乐播放需要测试
This commit is contained in:
2025-07-04 16:38:21 +08:00
parent 4c7e996706
commit 2d510ffe2a
640 changed files with 698375 additions and 163954 deletions

View File

@@ -50,6 +50,7 @@ import com.qxcm.moduleutil.bean.CircleListBean;
import com.qxcm.moduleutil.bean.CommentBean;
import com.qxcm.moduleutil.bean.ExpandColumnBean;
import com.qxcm.moduleutil.bean.HeatedBean;
import com.qxcm.moduleutil.dialog.ConfirmDialog;
import com.qxcm.moduleutil.utils.ARouteConstants;
import com.qxcm.moduleutil.utils.ImageUtils;
import com.qxcm.moduleutil.utils.SpUtil;
@@ -77,14 +78,20 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
private int currentReplyId = 0; // 记录当前正在回复的评论ID
private String TreplyTo = "";
@Override
protected void onResume() {
super.onResume();
MvpPre.topicId(zone_id, 2);
}
@Override
protected void initData() {
mBinding.topBar.setTitle("动态详情");
zone_id = getIntent().getStringExtra("zone_id");
MvpPre.topicId(zone_id, 2);
mBinding.tvSend.setOnClickListener(this::onClick);
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
cirleListAdapter = new CirleListAdapter();
cirleListAdapter = new CirleListAdapter(CirleListAdapter.PAGE_HOME);
mBinding.recycleView.setAdapter(cirleListAdapter);
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
@Override
@@ -95,7 +102,7 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
// 更新点赞状态
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
// 局部刷新
cirleListAdapter.notifyItemChanged(position);
cirleListAdapter.updateLikeStatusOnly(position, item.getIs_like());
}
}
@@ -108,12 +115,12 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
@Override
public void onZsClick(CircleListBean item) {
RewardGiftDialogFragment.show(String.valueOf(item.getId()), getSupportFragmentManager());
RewardGiftDialogFragment.show(String.valueOf(item.getId()),item.getUser_id() + "", getSupportFragmentManager());
}
@Override
public void onDiandianClick(CircleListBean item) {
ShareDialog shareDialog = new ShareDialog(DynamicDetailActivity.this, item.getContent(), item.getShare_url(), item.getTopic_id(),1);
ShareDialog shareDialog = new ShareDialog(DynamicDetailActivity.this, item.getContent(), item.getShare_url(), item.getTopic_id(),1,item.getUser_id() + "");
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
@Override
@@ -133,6 +140,12 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
public void onRelaClick(CircleListBean item) {
CommentDialogFragment.show(String.valueOf(item.getId()), getSupportFragmentManager());
}
@Override
public void onGensui(CircleListBean item) {
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form","首页热门列表").withString("roomId", item.getRoom_id()).navigation();
}
});
mBinding.rvComment.setLayoutManager(new LinearLayoutManager(this));
@@ -200,7 +213,9 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
// 普通评论
comZone(zone_id, mBinding.etInput.getText().toString(), "0", TreplyTo);
}
// 清空输入框但不清除焦点,保留软键盘
mBinding.etInput.setText("");
mBinding.etInput.requestFocus(); // 保持焦点
}
}
@@ -236,7 +251,7 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
@Override
public void setLikeZone() {
MvpPre.topicId(zone_id, 2);
}
@Override
@@ -259,7 +274,8 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
@Override
public void commentZone() {
MvpPre.getCommentList(zone_id, "1", "10");
// MvpPre.getCommentList(zone_id, "1", "10");
MvpPre.topicId(zone_id, 2);
}
@Override
@@ -288,7 +304,25 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
@Override
public void onDetaleClick(int id, int position) {
MvpPre.deleteComment(id+"");
deleteComment1(id,position);
// MvpPre.deleteComment(id+"");
}
private void deleteComment1(int commentId, int position) {
// 创建并显示确认对话框
new ConfirmDialog(this,
"提示",
"确定要删除此评论吗?",
"确认",
"取消",
v -> {
// 点击“确认”按钮时执行删除操作
MvpPre.deleteComment(String.valueOf(commentId));
// 移除数据(假设 commentAdapter 是你的 RecyclerView 适配器)
// commentAdapter.removeItem(position);
},
v -> {
// 点击“取消”按钮时什么都不做
},false,0).show();
}
@Override
@@ -297,7 +331,15 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
if (comment.getUser_id() == SpUtil.getUserId()){
options = new String[]{"复制", "删除", "回复", "取消"};
}else {
options =new String[] {"复制", "回复", "取消"};
if (reply!=null) {
if (reply.getUser_id() == SpUtil.getUserId()) {
options = new String[]{"复制", "删除", "回复", "取消"};
} else {
options = new String[]{"复制", "回复", "取消"};
}
}else {
options = new String[]{"复制", "回复", "取消"};
}
}
// new AlertDialog.Builder(this)
@@ -367,7 +409,7 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
bottomSheetDialog.show();
}
private void handleOptionClick(int optionIndex, CommentBean.CommentDetailsBean comment,CommentBean.CommentDetailsBean.Replies reply, int position) {
if (comment.getUser_id() == SpUtil.getUserId()) {
if (comment.getUser_id() == SpUtil.getUserId()||reply!=null) {
// 当前用户的评论选项
switch (optionIndex) {
case 0: // 复制
@@ -379,9 +421,11 @@ public class DynamicDetailActivity extends BaseMvpActivity<CirclePresenter, Acti
break;
case 1: // 删除
if (reply!=null) {
deleteComment(reply.getId(), position);
// deleteComment(reply.getId(), position);
deleteComment1(reply.getId(), position);
}else {
deleteComment(comment.getId(), position);
// deleteComment(comment.getId(), position);
deleteComment1(comment.getId(), position);
}
break;
case 2: // 回复

View File

@@ -61,7 +61,7 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
mBinding.tvContent.setText(spannableString);
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
cirleListAdapter = new CirleListAdapter();
cirleListAdapter = new CirleListAdapter(CirleListAdapter.PAGE_HOME);
mBinding.recycleView.setAdapter(cirleListAdapter);
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
@Override
@@ -72,7 +72,8 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
// 更新点赞状态
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
// 局部刷新
cirleListAdapter.notifyItemChanged(position);
// cirleListAdapter.notifyItemChanged(position);
cirleListAdapter.updateLikeStatusOnly(position, item.getIs_like());
}
}
@@ -86,12 +87,12 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
@Override
public void onZsClick(CircleListBean item) {
RewardGiftDialogFragment.show(String.valueOf(item.getId()), getSupportFragmentManager());
RewardGiftDialogFragment.show(String.valueOf(item.getId()),item.getUser_id()+"", getSupportFragmentManager());
}
@Override
public void onDiandianClick(CircleListBean item) {
ShareDialog shareDialog= new ShareDialog(DynamicListActivity.this,item.getContent(),item.getShare_url(),item.getTopic_id(),1);
ShareDialog shareDialog= new ShareDialog(DynamicListActivity.this,item.getContent(),item.getShare_url(),item.getTopic_id(),1,item.getUser_id()+"");
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener(){
@Override
@@ -114,6 +115,12 @@ public class DynamicListActivity extends BaseMvpActivity<CirclePresenter, Activi
public void onRelaClick(CircleListBean item) {
}
@Override
public void onGensui(CircleListBean item) {
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form","首页热门列表").withString("roomId", item.getRoom_id()).navigation();
}
});
}

View File

@@ -4,25 +4,18 @@ import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -32,27 +25,22 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.example.modulecircle.R;
import com.example.modulecircle.contacts.ReleaseContract;
import com.example.modulecircle.databinding.ActivityReleaseBinding;
import com.example.modulecircle.dialog.MultiSelectAdapter;
import com.example.modulecircle.adapter.MultiSelectAdapter;
import com.example.modulecircle.presenter.ReleasePresenter;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.qxcm.moduleutil.activity.BaseMvpActivity;
import com.qxcm.moduleutil.adapter.UserPhotoWallAdapter;
import com.qxcm.moduleutil.bean.HeatedBean;
import com.qxcm.moduleutil.bean.UserImgList;
import com.qxcm.moduleutil.utils.GlideEngine;
import com.qxcm.moduleutil.utils.LocationUtils;
import com.qxcm.moduleutil.utils.MyPictureParameterStyle;
import com.qxcm.moduleutil.utils.location.LocationProvider;
import com.qxcm.moduleutil.utils.location.LocationServiceFactory;
import com.qxcm.moduleutil.widget.Constants;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@@ -102,7 +90,7 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
String item = list.get(position);
if (item.equals(UserPhotoWallAdapter.ADD_PHOTO)) {
// 点击的是“+”号,启动图片选择
startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.CHOOSE_REQUEST, false, 9);
startChoosePhoto(1, PictureConfig.CHOOSE_REQUEST, false, 9);
} else {
// 查看大图或其他操作
}
@@ -152,7 +140,6 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
provider.getLastKnownLocation(this, new LocationProvider.LocationCallback() {
@Override
public void onLocationReceived(double latitude, double longitude, String city) {
Toast.makeText(ReleaseActivity.this, "当前位置:" + city, Toast.LENGTH_SHORT).show();
city1=city;
}
@@ -177,11 +164,6 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
ToastUtils.showShort("请输入发布内容");
return;
}
if (topicId.size()==0){
ToastUtils.showShort("请选择话题");
return;
}
MvpPre.publishZone(TextUtils.join(",", uploadedUrls),mBinding.etG.getText().toString(),TextUtils.join(",", topicId),"",city1);
}
@@ -193,16 +175,28 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
private void startChoosePhoto(int mimeType, int requestCode, boolean isVideo, int type) {
// PictureSelector.create(this)
// .openGallery(mimeType)
// .isGif(isVideo)
// .imageEngine(GlideEngine.createGlideEngine())
// .maxSelectNum(type)
// .isPreviewImage(true)
// .isCamera(true)
// .setOutputCameraPath(Constants.FILE_PATH)
// .isCompress(true)
// .setPictureStyle(MyPictureParameterStyle.Companion.selectPicture())
// .forResult(requestCode); //结果回调onActivityResult code
PictureSelector.create(this)
.openGallery(mimeType)
.isGif(isVideo)
.imageEngine(GlideEngine.createGlideEngine())
.maxSelectNum(type)
.setImageEngine(GlideEngine.createGlideEngine())
.setMaxSelectNum(type)
.isPreviewImage(true)
.isCamera(true)
.setOutputCameraPath(Constants.FILE_PATH)
.isCompress(true)
.setPictureStyle(MyPictureParameterStyle.Companion.selectPicture())
.isDisplayCamera(true)
.setOutputCameraDir(Constants.FILE_PATH)
.isOriginalSkipCompress(true)
.forResult(requestCode); //结果回调onActivityResult code
}
@@ -213,7 +207,7 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
if (resultCode == RESULT_OK && data != null) {
switch (requestCode) {
case PictureConfig.CHOOSE_REQUEST:
List<LocalMedia> localMediaList = PictureSelector.obtainMultipleResult(data);
List<LocalMedia> localMediaList = PictureSelector.obtainSelectorList(data);
if (localMediaList != null && !localMediaList.isEmpty()) {
List<File> imageFiles = new ArrayList<>();
@@ -238,7 +232,7 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
// }
break;
case PictureConfig.REQUEST_CAMERA:
List<LocalMedia> localMedia1 = PictureSelector.obtainMultipleResult(data);
List<LocalMedia> localMedia1 = PictureSelector.obtainSelectorList(data);
if (localMedia1 != null && localMedia1.size() != 0) {
LocalMedia imgMedia = localMedia1.get(0);
// MvpPre.uploadFile(new File(imgMedia.getRealPath()), 3);
@@ -271,10 +265,13 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
BottomSheetDialog dialog = new BottomSheetDialog(this);
dialog.setContentView(R.layout.bottom_sheet_recyclerview);
View bottomSheet = dialog.findViewById(com.google.android.material.R.id.design_bottom_sheet);
if (bottomSheet != null) {
bottomSheet.setBackgroundResource(android.R.color.transparent); // 设置为透明
}
RecyclerView recyclerView = dialog.findViewById(R.id.rv_options);
Button btnCancel = dialog.findViewById(R.id.btn_cancel);
Button btnConfirm = dialog.findViewById(R.id.btn_confirm);
TextView btnCancel = dialog.findViewById(R.id.btn_cancel);
TextView btnConfirm = dialog.findViewById(R.id.btn_confirm);
assert recyclerView != null;
recyclerView.setLayoutManager(new LinearLayoutManager(this));
@@ -319,7 +316,7 @@ public class ReleaseActivity extends BaseMvpActivity<ReleasePresenter, ActivityR
@Override
public void publishSuccess() {
ToastUtils.showShort("发布成功,待审核");
ToastUtils.showShort("发布成功");
finish();
}

View File

@@ -16,6 +16,7 @@ import com.qxcm.moduleutil.bean.CircleListBean;
import com.qxcm.moduleutil.bean.ExpandColumnBean;
import com.qxcm.moduleutil.utils.ImageUtils;
import com.qxcm.moduleutil.utils.MeHeadView;
import com.qxcm.moduleutil.utils.SpUtil;
import com.qxcm.moduleutil.widget.MyGridView;
import com.qxcm.moduleutil.widget.img.FullScreenUtil;
@@ -38,6 +39,8 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
void onPinglunClick(ExpandColumnBean item);
void onRelaClick(ExpandColumnBean item);
void onGnsClick(ExpandColumnBean item);
}
private OnItemClickListener mListener;
@@ -57,6 +60,11 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
//昵称
helper.setText(R.id.dy_name_text, item.getNickname());
helper.setText(R.id.tv_address, item.getLoginip());
if (item.getUser_id().equals(SpUtil.getUserId()+"")){
helper.setVisible(R.id.gensui, false);
}else {
helper.setVisible(R.id.gensui, true);
}
if (item.getRoom_id() != 0) {
helper.getView(R.id.gensui).setBackgroundResource(com.qxcm.moduleutil.R.mipmap.gsui);
@@ -68,6 +76,10 @@ public class ExpandColumnAdapter extends BaseQuickAdapter<ExpandColumnBean, Base
if (mListener != null) mListener.onHeadImageClick(item);
});
helper.getView(R.id.gensui).setOnClickListener(v -> {
if (mListener != null) mListener.onGnsClick(item);
});
//头像
// ImageUtils.loadHeadCC(item.getAvatar(), (ImageView) helper.getView(R.id.dy_head_image));
MeHeadView headView = helper.getView(R.id.dy_head_image);

View File

@@ -1,4 +1,4 @@
package com.example.modulecircle.dialog;
package com.example.modulecircle.adapter;
import android.util.SparseBooleanArray;
import android.view.LayoutInflater;
@@ -14,7 +14,11 @@ import com.qxcm.moduleutil.bean.HeatedBean;
import java.util.ArrayList;
import java.util.List;
/**
*@author qx
*@data 2025/6/17
*@description: 这是发布动态选择话题的适配器多选状态
*/
public class MultiSelectAdapter extends RecyclerView.Adapter<MultiSelectAdapter.ViewHolder> {
private List<HeatedBean> options;
private SparseBooleanArray selectedPositions = new SparseBooleanArray();

View File

@@ -31,10 +31,14 @@ import com.qxcm.moduleutil.bean.CommentBean;
import com.qxcm.moduleutil.bean.ExpandColumnBean;
import com.qxcm.moduleutil.bean.HeatedBean;
import com.qxcm.moduleutil.utils.ARouteConstants;
import com.qxcm.moduleutil.utils.ChatLauncher;
import com.qxcm.moduleutil.widget.dialog.RewardGiftDialogFragment;
import com.qxcm.moduleutil.widget.dialog.ShareDialog;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.tencent.imsdk.v2.V2TIMConversation;
import com.tencent.qcloud.tuicore.TUIConstants;
import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIC2CChatActivity;
import com.zhpan.bannerview.indicator.DrawableIndicator;
import com.zhpan.indicator.base.IIndicator;
import com.zhpan.indicator.enums.IndicatorSlideMode;
@@ -72,13 +76,14 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
cirleCategoryBannerAdapter = new CirleCategoryBannerAdapter();
mBinding.bannerViewPager
.setPageMargin(1)
.setScrollDuration(5000)
.setScrollDuration(0)
.setRevealWidth(0, 0)
.setIndicatorVisibility(View.VISIBLE)
.setIndicatorView(getVectorDrawableIndicator())
.setIndicatorSlideMode(IndicatorSlideMode.NORMAL)
.setAdapter(cirleCategoryBannerAdapter)
.create();
.setAutoPlay(false);
// .create();/**/
mBinding.constraintLayout.setVisibility(View.GONE);
cirleCategoryBannerAdapter.setOnItemClickListener((view, data, position) -> {
@@ -94,7 +99,7 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
mBinding.recycleView.setLayoutManager(new LinearLayoutManager(getContext()));
cirleListAdapter = new CirleListAdapter();
cirleListAdapter = new CirleListAdapter(CirleListAdapter.PAGE_HOME);
mBinding.recycleView.setAdapter(cirleListAdapter);
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
@Override
@@ -105,7 +110,7 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
// 更新点赞状态
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
// 局部刷新
cirleListAdapter.notifyItemChanged(position);
cirleListAdapter.updateLikeStatusOnly(position, item.getIs_like());
}
}
@@ -119,13 +124,13 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
}
@Override
public void onZsClick(CircleListBean item) {
RewardGiftDialogFragment.show(String.valueOf(item.getId()), getChildFragmentManager());
public void onZsClick(CircleListBean item) {//打赏
RewardGiftDialogFragment.show(String.valueOf(item.getId()),item.getUser_id()+"", getChildFragmentManager());
}
@Override
public void onDiandianClick(CircleListBean item) {
ShareDialog shareDialog = new ShareDialog(getContext(), item.getContent(),item.getShare_url(),item.getTopic_id(),1);
ShareDialog shareDialog = new ShareDialog(getContext(), item.getContent(),item.getShare_url(),item.getTopic_id(),1,item.getUser_id()+"");
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
@Override
@@ -149,6 +154,15 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
public void onRelaClick(CircleListBean item) {
}
@Override
public void onGensui(CircleListBean item) {
if (item.getRoom_id()!=null && !item.getRoom_id().equals("0")) {
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()).navigation();
}else {
ChatLauncher.getInstance().launchC2CChat(getActivity(), item.getUser_id()+"");
}
}
});
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
@Override
@@ -195,7 +209,8 @@ public class CircleCategoryFragment extends BaseMvpFragment<CirclePresenter, Fra
// 将原始数据拆分为多个子列表每个子列表最多包含4个元素
mBinding.constraintLayout.setVisibility(View.VISIBLE);
// 添加到 bannerViewPager 的是分页后的列表
mBinding.bannerViewPager.addData(baseListData(list, 4));
mBinding.bannerViewPager.create(baseListData(list, 4));
// mBinding.bannerViewPager.addData(baseListData(list, 4));
}

View File

@@ -25,6 +25,7 @@ import com.qxcm.moduleutil.bean.CommentBean;
import com.qxcm.moduleutil.bean.ExpandColumnBean;
import com.qxcm.moduleutil.bean.HeatedBean;
import com.qxcm.moduleutil.utils.ARouteConstants;
import com.qxcm.moduleutil.utils.ChatLauncher;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
@@ -106,7 +107,7 @@ public class ExpandColumnFragment extends BaseMvpFragment<CirclePresenter, Fragm
@Override
public void onHeadImageClick(ExpandColumnBean item) {
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getId()).navigation();
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", item.getUser_id()).navigation();
}
@Override
@@ -128,6 +129,15 @@ public class ExpandColumnFragment extends BaseMvpFragment<CirclePresenter, Fragm
public void onRelaClick(ExpandColumnBean item) {
}
@Override
public void onGnsClick(ExpandColumnBean item) {
if ( item.getRoom_id()!=0){
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页热门列表").withString("roomId", item.getRoom_id()+"").navigation();
}else {
ChatLauncher.getInstance().launchC2CChat(getActivity(), item.getUser_id()+"");
}
}
});
}
@Override

View File

@@ -26,7 +26,7 @@
android:layout_height="wrap_content"
android:paddingLeft="@dimen/dp_6"
android:paddingRight="@dimen/dp_6"
android:paddingBottom="@dimen/dp_50"
android:paddingBottom="@dimen/dp_12"
tools:itemCount="1"
tools:listitem="@layout/item_cirle_list" />
@@ -70,11 +70,11 @@
android:layout_height="wrap_content" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<!-- 分割线 -->
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_0_5"
android:background="#ccc" />
<!-- &lt;!&ndash; 分割线 &ndash;&gt;-->
<!-- <View-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="@dimen/dp_0_5"-->
<!-- android:background="#ccc" />-->
</LinearLayout>
</ScrollView>

View File

@@ -10,7 +10,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="match_parent">
<com.qxcm.moduleutil.widget.CustomTopBar
android:id="@+id/top_bar"
@@ -24,90 +24,119 @@
android:id="@+id/ivAvatar"
android:layout_width="@dimen/dp_45"
android:layout_height="@dimen/dp_45"
android:src="@mipmap/default_avatar"
android:layout_marginTop="@dimen/dp_23"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_23"
android:scaleType="centerCrop"
android:src="@mipmap/default_avatar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/top_bar"
app:riv_corner_radius="@dimen/dp_4"/>
app:riv_corner_radius="@dimen/dp_4" />
<!-- 标题 -->
<TextView
android:id="@+id/tvTitle"
android:layout_width="0dp"
android:layout_height="@dimen/dp_24"
android:layout_marginStart="@dimen/dp_4"
android:ellipsize="end"
android:maxLines="1"
android:text="#萌新驾到"
android:textColor="@color/black"
android:textSize="16sp"
android:ellipsize="end"
android:maxLines="1"
app:layout_constraintStart_toEndOf="@id/ivAvatar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/ivAvatar"
app:layout_constraintHorizontal_bias="0"
android:layout_marginStart="@dimen/dp_4" />
app:layout_constraintStart_toEndOf="@id/ivAvatar"
app:layout_constraintTop_toTopOf="@+id/ivAvatar" />
<ImageView
android:id="@+id/item_ry"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
android:layout_marginStart="@dimen/dp_4"
android:src="@mipmap/reyi"
app:layout_constraintStart_toEndOf="@id/ivAvatar"
app:layout_constraintTop_toBottomOf="@id/tvTitle"
android:layout_marginStart="@dimen/dp_4"
/>
app:layout_constraintTop_toBottomOf="@id/tvTitle" />
<!-- 描述 -->
<TextView
android:id="@+id/tvDescription"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_18"
android:layout_marginStart="@dimen/dp_2"
android:ellipsize="none"
android:gravity="center"
android:singleLine="true"
android:text="热议 3.24W条动态"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_10"
android:gravity="center"
android:singleLine="true"
android:ellipsize="none"
android:layout_marginStart="@dimen/dp_2"
app:layout_constraintStart_toEndOf="@id/item_ry"
app:layout_constraintTop_toBottomOf="@id/tvTitle"
/>
app:layout_constraintTop_toBottomOf="@id/tvTitle" />
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/tvDescription"
app:layout_constraintStart_toStartOf="@+id/ivAvatar"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_11"
android:layout_marginEnd="@dimen/dp_16"
android:textColor="@color/color_FF666666"
android:lineSpacingExtra="@dimen/dp_4"
android:textSize="@dimen/sp_12"/>
android:textColor="@color/color_FF666666"
android:textSize="@dimen/sp_12"
app:layout_constraintStart_toStartOf="@+id/ivAvatar"
app:layout_constraintTop_toBottomOf="@+id/tvDescription" />
<!-- <com.scwang.smartrefresh.layout.SmartRefreshLayout-->
<!-- android:id="@+id/smart_refresh_layout"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="0dp"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@id/tv_content"-->
<!-- app:srlEnableLoadMore="true"-->
<!-- app:srlEnableRefresh="false">-->
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/recycle_view"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:overScrollMode="never"-->
<!-- tools:listitem="@layout/item_cirle_list" />-->
<!-- </com.scwang.smartrefresh.layout.SmartRefreshLayout>-->
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
app:layout_constraintTop_toBottomOf="@+id/tv_content"
app:srlEnableLoadMore="false"
app:srlEnableRefresh="true">
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/dp_6"
android:paddingRight="@dimen/dp_6"
android:paddingBottom="@dimen/dp_50"
tools:listitem="@layout/item_cirle_list"/>
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_content" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_20"/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,27 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_r16_tb_ffffff"
android:id="@+id/dilog"
android:background="@drawable/bg_r16_fff"
android:orientation="vertical"
android:padding="16dp">
android:elevation="0dp"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
android:gravity="end"
android:orientation="horizontal">
<Button
<TextView
android:id="@+id/btn_cancel"
android:layout_width="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
android:layout_height="36dp"
android:background="@drawable/bg_r80_hui"
android:layout_height="wrap_content"
android:text="取消"
android:textColor="#000" />
android:textSize="@dimen/sp_12"
android:gravity="center"
android:textColor="@color/color_FF333333" />
<TextView
android:id="@+id/tv_title"
@@ -34,15 +40,16 @@
android:textColor="@color/black"
android:textSize="16sp" />
<Button
<TextView
android:id="@+id/btn_confirm"
android:layout_width="wrap_content"
android:layout_height="36dp"
android:layout_height="@dimen/dp_26"
android:layout_alignParentEnd="true"
android:layout_marginStart="16dp"
android:background="@drawable/cs"
android:gravity="center"
android:text="确认"
android:textColor="@color/color_FF333333" />
android:textSize="@dimen/sp_12"
android:textColor="@color/color_0DFFB9" />
</RelativeLayout>
@@ -50,7 +57,9 @@
android:id="@+id/rv_options"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" />
android:layout_marginTop="10dp"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_16"/>
</LinearLayout>

View File

@@ -34,28 +34,55 @@
</com.google.android.material.appbar.AppBarLayout>
<!-- <com.scwang.smartrefresh.layout.SmartRefreshLayout-->
<!-- android:id="@+id/smart_refresh_layout"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/app_bar_layout"-->
<!-- app:srlEnableLoadMore="true"-->
<!-- app:srlEnableRefresh="false">-->
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/recycle_view"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:paddingLeft="@dimen/dp_6"-->
<!-- android:paddingRight="@dimen/dp_6"-->
<!-- android:paddingBottom="@dimen/dp_50" />-->
<!-- </com.scwang.smartrefresh.layout.SmartRefreshLayout>-->
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/app_bar_layout"
app:srlEnableLoadMore="false"
app:srlEnableRefresh="true">
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/app_bar_layout">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/dp_6"
android:paddingRight="@dimen/dp_6"
android:paddingBottom="@dimen/dp_50" />
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/app_bar_layout" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_20"/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -42,8 +42,8 @@
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:srlEnableLoadMore="false"
app:srlEnableRefresh="true">
app:srlEnableLoadMore="true"
app:srlEnableRefresh="false">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"

View File

@@ -18,14 +18,14 @@
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="16sp"
android:textSize="@dimen/sp_14"
android:textColor="#333"
android:paddingStart="16dp"/>
/>
<View
android:id="@+id/v_checkbox"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_width="@dimen/dp_20"
android:layout_height="@dimen/dp_20"
android:background="@drawable/selector_custom_checkbox"
android:focusable="false"
android:clickable="true"/>