家族主页和个人主页家族公会UI修改

This commit is contained in:
huangjian
2021-08-20 18:49:21 +08:00
parent e089cfd76a
commit b8c78d18a4
14 changed files with 121 additions and 173 deletions

View File

@@ -28,6 +28,7 @@ import com.yizhuan.erban.home.activity.CollectionRoomActivity;
import com.yizhuan.erban.home.presenter.MainFragmentPresenter;
import com.yizhuan.erban.home.view.IMainFragmentView;
import com.yizhuan.erban.module_hall.HallDataManager;
import com.yizhuan.erban.module_hall.hall.activity.ModuleClanActivity;
import com.yizhuan.erban.module_hall.hall.activity.ModuleHallActivity;
import com.yizhuan.erban.ui.patriarch.PatriarchModeActivity;
import com.yizhuan.erban.ui.pay.ChargeActivity;
@@ -144,12 +145,8 @@ public class MeFragment extends BaseMvpFragment<IMainFragmentView, MainFragmentP
//模厅
HallDataManager.get().registerHallExist(this, hallExist -> {
if (hallExist != null && hallExist) {
if (HallDataManager.get().isHasClan()) {
mBinding.meItemUnion.setText("我的家族");
} else {
mBinding.meItemUnion.setText("我的公会");
}
if ((hallExist != null && hallExist) || HallDataManager.get().isHasClan()) {
mBinding.meItemUnion.setText("我的公会");
mBinding.meItemUnion.setVisibility(View.VISIBLE);
} else {
mBinding.meItemUnion.setVisibility(View.GONE);
@@ -305,7 +302,11 @@ public class MeFragment extends BaseMvpFragment<IMainFragmentView, MainFragmentP
break;
case R.id.me_item_union:
ModuleHallActivity.start(mContext);
if (HallDataManager.get().isHasClan()) {
ModuleClanActivity.start(mContext);
} else {
ModuleHallActivity.start(mContext);
}
break;
case R.id.me_item_patriarch:

View File

@@ -363,14 +363,14 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
} else {
mBinding.llClan.setVisibility(View.GONE);
}
mBinding.llHall.setOnClickListener(v -> {
/* mBinding.llHall.setOnClickListener(v -> {
if (hallInfo != null && hallInfo.getHallId() != 0) {
ModuleHallActivity.start(context, hallInfo.getHallId(), hallInfo.getOwnerUid(), userId);
}
});
mBinding.llClan.setOnClickListener(v -> {
ModuleClanActivity.start(context, userId);
});
});*/
});
}

View File

@@ -263,7 +263,6 @@
android:id="@+id/tv_only_hall_detail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableEnd="@drawable/arrow_right"
android:paddingStart="@dimen/dp_15"
android:paddingTop="@dimen/dp_15"
android:paddingEnd="@dimen/dp_15"
@@ -468,7 +467,8 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:src="@drawable/arrow_right" />
android:src="@drawable/arrow_right"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -7,23 +7,18 @@ import android.os.Bundle;
import android.text.SpannableString;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.orhanobut.logger.Logger;
import com.yizhuan.erban.R;
import com.yizhuan.erban.UIHelper;
import com.yizhuan.erban.base.BaseMvpActivity;
import com.yizhuan.erban.common.widget.dialog.DialogManager;
import com.yizhuan.erban.databinding.ActivityModuleClanBinding;
import com.yizhuan.erban.friend.action.AbstractSelectFriendAction;
import com.yizhuan.erban.module_hall.HallDataManager;
import com.yizhuan.erban.module_hall.hall.adapter.GroupMemberListAdapter;
@@ -42,13 +37,11 @@ import com.yizhuan.xchat_android_core.module_hall.hall.bean.ClanInfo;
import com.yizhuan.xchat_android_core.module_hall.hall.bean.HallInfo;
import com.yizhuan.xchat_android_core.module_hall.hall.bean.MemberInfo;
import com.yizhuan.xchat_android_core.module_hall.hall.bean.OptionInfo;
import com.yizhuan.xchat_android_core.module_hall.hall.bean.RoleType;
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ScreenUtils;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
import org.greenrobot.eventbus.EventBus;
@@ -56,50 +49,12 @@ import org.greenrobot.eventbus.EventBus;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* 模厅界面
*/
@CreatePresenter(ModuleHallPresenter.class)
public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleHallPresenter>
implements IModuleHallView {
@BindView(R.id.rv_hall)
RecyclerView rvHall;
@BindView(R.id.ll_hall_list)
View llHallList;
@BindView(R.id.tv_clan_member_count)
TextView tvClanMemberCount;
@BindView(R.id.srl_group)
SwipeRefreshLayout mSrlGroup;
@BindView(R.id.recycler_view)
RecyclerView recyclerView;
@BindView(R.id.tv_count)
TextView tvCount;
@BindView(R.id.iv_hall_member_more)
ImageView ivHallMemberMore;
@BindView(R.id.iv_hall_member_search)
ImageView ivHallMemberSearch;
@BindView(R.id.tv_title)
TextView tvTitle;
@BindView(R.id.iv_setting)
ImageView ivSetting;
@BindView(R.id.cl_clan)
View clClan;
@BindView(R.id.tv_clan_id)
TextView tvClanId;
@BindView(R.id.tv_clan_owner_name)
TextView tvClanOwnerName;
@BindView(R.id.iv_clan_avatar)
ImageView ivClanAvatar;
@BindView(R.id.iv_clan_level)
ImageView ivClanLevel;
@BindView(R.id.nsv_hall)
NestedScrollView nsvHall;
implements IModuleHallView, View.OnClickListener {
private GroupMemberListAdapter mGroupMemberListAdapter;
private List<AuthInfo> mAuthInfoList;
@@ -117,6 +72,8 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
private boolean isSelfClan;
private long otherUid;
private ActivityModuleClanBinding binding;
public static void start(Context context, long uid) {
Intent intent = new Intent(context, ModuleClanActivity.class);
intent.putExtra(KEY_OTHER_UID, uid);
@@ -132,19 +89,24 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_module_clan);
ButterKnife.bind(this);
binding = ActivityModuleClanBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.ivHallMemberSearch.setOnClickListener(this);
binding.ivHallMemberMore.setOnClickListener(this);
binding.ivBack.setOnClickListener(this);
binding.tvHallAdmin.setOnClickListener(this);
binding.tvHallIncome.setOnClickListener(this);
otherUid = getIntent().getLongExtra(KEY_OTHER_UID, AuthModel.get().getCurrentUid());
isSelfClan = otherUid == AuthModel.get().getCurrentUid();
recyclerView.setLayoutManager(new LinearLayoutManager(this));
mSrlGroup.setOnRefreshListener(() -> {
binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
binding.srlGroup.setOnRefreshListener(() -> {
if (isLoading) {
return;
}
loadMembers(true);
});
recyclerView.setLayoutManager(new LinearLayoutManager(this));
binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
mGroupMemberListAdapter = new GroupMemberListAdapter(this, null);
mGroupMemberListAdapter.setOnItemChildClickListener((adapter, view, position) -> {
List<MemberInfo> memberInfoList = mGroupMemberListAdapter.getData();
@@ -161,17 +123,20 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
}
}
});
mGroupMemberListAdapter.setOnLoadMoreListener(() -> loadMembers(false), recyclerView);
mGroupMemberListAdapter.setOnLoadMoreListener(() -> loadMembers(false), binding.recyclerView);
recyclerView.setAdapter(mGroupMemberListAdapter);
binding.recyclerView.setAdapter(mGroupMemberListAdapter);
setTvCount(0);
if (isSelfClan) {
getMvpPresenter().getHallAuths();
if (HallDataManager.get().isClanElder()) {
binding.llOption.setVisibility(View.VISIBLE);
}
} else {
ivHallMemberSearch.setVisibility(View.GONE);
binding.ivHallMemberSearch.setVisibility(View.GONE);
}
EventBus.getDefault().register(this);
nsvHall.setNestedScrollingEnabled(false);
binding.nsvHall.setNestedScrollingEnabled(false);
initClanAndHall();
setMoreOption(HallDataManager.get().isManager() && isSelfClan);
}
@@ -183,7 +148,7 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
HallDataManager.get().registerName(this, hallName -> {
if (TextUtils.isEmpty(hallName)) return;
if (clanInfo == null || clanInfo.getId() == 0) {
tvTitle.setText(hallName);
binding.tvTitle.setText(hallName);
} else {
loadHallList();
}
@@ -195,19 +160,18 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
if (isSelfClan) {
HallDataManager.get().updateHallInfo(clanAndHallInfo);
}
setSettingOption(HallDataManager.get().isClanElder() && isSelfClan);
clanInfo = clanAndHallInfo.getClan();
if (clanInfo != null && clanInfo.getId() != 0) {
clClan.setVisibility(View.VISIBLE);
clClan.setOnClickListener(v -> UserInfoActivity.Companion.start(context, clanInfo.getElderUid()));
tvClanId.setText("家族ID:" + clanInfo.getId());
tvClanOwnerName.setText(clanInfo.getElderName());
tvTitle.setText(clanInfo.getName());
ImageLoadUtils.loadRectImage(context,clanInfo.getAvatar(),ivClanAvatar,R.drawable.default_avatar, ScreenUtil.dip2px(8));
ImageLoadUtils.loadImage(context, clanInfo.getLevelIcon(), ivClanLevel);
binding.clClan.setVisibility(View.VISIBLE);
binding.clClan.setOnClickListener(v -> UserInfoActivity.Companion.start(context, clanInfo.getElderUid()));
binding.tvClanOwnerId.setText("音游号:" + clanInfo.getElderErbanNo());
binding.tvClanOwnerName.setText(clanInfo.getElderName());
binding.tvTitle.setText(clanInfo.getName());
ImageLoadUtils.loadRectImage(context, clanInfo.getAvatar(), binding.ivClanAvatar, R.drawable.default_avatar, ScreenUtil.dip2px(8));
ImageLoadUtils.loadImage(context, clanInfo.getLevelIcon(), binding.ivClanLevel);
loadHallList();
} else {
clClan.setVisibility(View.GONE);
binding.clClan.setVisibility(View.GONE);
}
});
@@ -220,24 +184,25 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
.compose(bindToLifecycle())
.subscribe(hallInfos -> {
if (ListUtils.isListEmpty(hallInfos)) {
llHallList.setVisibility(View.GONE);
binding.llHallList.setVisibility(View.GONE);
return;
}
if (rvDelegate == null) {
rvDelegate = new RVDelegate.Builder<HallInfo>()
.setAdapter(hallListAdapter = new HallListAdapter())
.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false))
.setRecyclerView(rvHall)
.setRecyclerView(binding.rvHall)
.build();
hallListAdapter.setOnItemClickListener((adapter, view, position) -> {
HallInfo hallInfo = hallListAdapter.getItem(position);
if (hallInfo != null) {
ModuleHallActivity.start(context, hallInfo.getHallId(),hallInfo.getOwnerUid(), otherUid);
ModuleHallActivity.start(context, hallInfo.getHallId(), hallInfo.getOwnerUid(), otherUid);
}
});
}
llHallList.setVisibility(View.VISIBLE);
tvClanMemberCount.setText("公会列表(" + hallInfos.size() + ")");
binding.llHallList.setVisibility(View.VISIBLE);
binding.tvClanMemberCount.setText("公会房间(" + hallInfos.size() + ")");
binding.tvClanRoomNum.setText("公会房间数量:" + hallInfos.size());
rvDelegate.setNewData(hallInfos);
});
}
@@ -248,24 +213,11 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
EventBus.getDefault().unregister(this);
}
/**
* 设置权限, 房主才展示
*
* @param visibility true:显示
*/
private void setSettingOption(boolean visibility) {
if (visibility) {
ivSetting.setVisibility(View.VISIBLE);
} else {
ivSetting.setVisibility(View.GONE);
}
}
private void setMoreOption(boolean hasOption) {
if (hasOption) {
ivHallMemberMore.setVisibility(View.VISIBLE);
binding.ivHallMemberMore.setVisibility(View.VISIBLE);
} else {
ivHallMemberMore.setVisibility(View.GONE);
binding.ivHallMemberMore.setVisibility(View.GONE);
}
}
@@ -307,7 +259,7 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
HallModel.get().getClanAllMembers(otherUid, page, pageSize)
.compose(RxHelper.bindActivity(this))
.subscribe((listMemberInfo, throwable) -> {
mSrlGroup.setRefreshing(false);
binding.srlGroup.setRefreshing(false);
isLoading = false;
if (throwable != null) {
Logger.i("模厅成员加载失败...");
@@ -350,7 +302,7 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
private void setTvCount(int count) {
mCount = count;
tvCount.setText("成员列表(" + mCount + "人)");
binding.tvCount.setText("公会成员(" + mCount + ")");
}
@Override
@@ -423,8 +375,8 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
toast(message);
}
@OnClick({R.id.iv_hall_member_search, R.id.iv_hall_member_more, R.id.iv_back, R.id.iv_setting})
public void onViewClicked(View view) {
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.iv_hall_member_search:
MemberSearchActivity.start(ModuleClanActivity.this);
@@ -441,9 +393,11 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
case R.id.iv_back:
finish();
break;
case R.id.iv_setting:
if (HallDataManager.get().getRoleType() == RoleType.OWNER) {
showMenuDialog(view);
case R.id.tv_hall_income:
if (clanInfo != null) {
ClanIncomeActivity.start(this, clanInfo.getId());
} else {
toast("数据加载中,请稍后...");
}
break;
}
@@ -471,20 +425,6 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
}
}
private void showMenuDialog(View attachView) {
List<AuthInfo> authInfoList = new ArrayList<>();
AuthInfo incomeAuth = new AuthInfo();
incomeAuth.setCode(AuthInfo.AUTH_HALL_CLAN_INCOME);
incomeAuth.setName("公会收入");
incomeAuth.setStatus(1);
authInfoList.add(incomeAuth);
HallMenuDialog dialog = new HallMenuDialog(this, attachView, authInfoList, false);
dialog.setOnMenuClickListener(this::jumpCode);
dialog.show();
}
private void jumpCode(String code) {
switch (code) {
case AuthInfo.AUTH_APPLY_HALL_EXIT:
@@ -547,6 +487,5 @@ public class ModuleClanActivity extends BaseMvpActivity<IModuleHallView, ModuleH
protected void setStatusBar() {
super.setStatusBar();
StatusBarUtil.transparencyBar(this);
StatusBarUtil.StatusBarLightMode(this);
}
}

View File

@@ -581,6 +581,5 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
protected void setStatusBar() {
super.setStatusBar();
StatusBarUtil.transparencyBar(this);
StatusBarUtil.StatusBarLightMode(this);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -20,9 +20,9 @@
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@mipmap/bg_uclan_top_cover"
app:layout_constraintDimensionRatio="750:497"
app:layout_constraintTop_toTopOf="parent"
android:background="@mipmap/bg_uclan_top_cover" />
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_clan"
@@ -35,13 +35,15 @@
app:layout_constraintTop_toTopOf="parent">
<ImageView
<com.yizhuan.erban.common.widget.CircleImageView
android:id="@+id/iv_clan_avatar"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_marginStart="30dp"
android:layout_marginBottom="5dp"
android:src="@drawable/default_cover"
app:cborder_color="@color/text_normal_c6c6e9"
app:cborder_width="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -67,15 +69,24 @@
tools:text="我是会长" />
<TextView
android:id="@+id/tv_clan_id"
android:id="@+id/tv_clan_owner_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_5"
android:fontFamily="sans-serif"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="@dimen/sp_11"
tools:text="家族ID:123456" />
<TextView
android:id="@+id/tv_clan_room_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:fontFamily="sans-serif"
android:textColor="@color/text_normal_c6c6e9"
android:textSize="@dimen/sp_11"
tools:text="公会房间数量:11" />
</LinearLayout>
<ImageView
@@ -91,18 +102,43 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_option"
<LinearLayout
android:id="@+id/ll_option"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="@dimen/dp_30"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:layout_marginEnd="15dp"
android:orientation="horizontal"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/cl_clan"
tools:itemCount="1"
tools:listitem="@layout/item_tab_small" />
tools:visibility="visible">
<TextView
android:id="@+id/tv_hall_income"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/bg_hall_income"
android:paddingStart="10dp"
android:paddingTop="10dp"
android:text="查看流水"
android:textColor="@color/text_title_white"
android:textSize="16sp" />
<TextView
android:id="@+id/tv_hall_admin"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_weight="1"
android:background="@drawable/bg_hall_admin"
android:paddingStart="10dp"
android:paddingTop="10dp"
android:text="公会超管设置"
android:textColor="@color/text_title_white"
android:textSize="16sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_hall_list"
@@ -117,7 +153,7 @@
android:paddingEnd="8dp"
android:paddingBottom="17dp"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@id/rv_option"
app:layout_constraintTop_toBottomOf="@id/ll_option"
app:layout_goneMarginTop="30dp"
tools:visibility="visible">
@@ -243,26 +279,6 @@
android:textSize="18sp"
android:visibility="visible" />
<ImageView
android:id="@+id/iv_setting"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_setting"
android:visibility="gone" />
<TextView
android:id="@+id/tv_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:text="编辑"
android:textColor="@color/text_secondary_4f516a"
android:textSize="@dimen/sp_13"
android:visibility="gone" />
</RelativeLayout>
</androidx.appcompat.widget.Toolbar>

View File

@@ -4,21 +4,22 @@
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="65dp"
android:paddingTop="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
tools:background="@color/bg_normal_1c1b22">
<RelativeLayout
android:id="@+id/rl_avatar"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_width="58dp"
android:layout_height="54dp"
android:layout_centerVertical="true"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp">
<ImageView
android:id="@+id/iv_avatar"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerInParent="true"
tools:src="@drawable/default_avatar" />
@@ -26,8 +27,9 @@
android:id="@+id/iv_type"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_hall_owner"
android:visibility="gone" />
android:src="@drawable/bg_clan_owner"
android:visibility="gone"
tools:visibility="visible" />
</RelativeLayout>
@@ -196,13 +198,4 @@
android:src="@drawable/ic_hall_member_unchecked"
android:visibility="gone" />
<View
android:layout_width="fill_parent"
android:layout_height="1px"
android:layout_alignParentBottom="true"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:background="@color/line_353548" />
</RelativeLayout>