From a824b62bde75373c9b6b8d3a60b3a279895c8675 Mon Sep 17 00:00:00 2001
From: Administrator <123>
Date: Sat, 06 Nov 2021 08:17:44 +0000
Subject: [PATCH] 广场 帖子 UI
---
app/src/main/java/com/duqing/missions/widgets/QuadrateLinearLayout.java | 40 ++++++++++
app/src/main/res/drawable-v21/btn_white.xml | 23 +++++
app/src/main/java/com/duqing/missions/base/adapter/BaseAdapter.java | 12 +++
app/src/main/res/color/radio_text.xml | 2
app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java | 15 +++
app/src/main/res/drawable/ic_baseline_more_vert_24.xml | 10 ++
app/src/main/res/layout/item_square.xml | 18 ++--
app/src/main/res/drawable/bg_trans_red_circle.xml | 9 ++
app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java | 5
app/src/main/res/values/colors.xml | 2
app/src/main/res/layout/item/layout/dynamic_item_square.xml | 103 ++++++++++++++++++++++++-
11 files changed, 224 insertions(+), 15 deletions(-)
diff --git a/app/src/main/java/com/duqing/missions/base/adapter/BaseAdapter.java b/app/src/main/java/com/duqing/missions/base/adapter/BaseAdapter.java
index 3d2cdb0..84f958a 100644
--- a/app/src/main/java/com/duqing/missions/base/adapter/BaseAdapter.java
+++ b/app/src/main/java/com/duqing/missions/base/adapter/BaseAdapter.java
@@ -12,6 +12,7 @@
import com.duqing.missions.databinding.LayoutNullBinding;
import com.duqing.missions.util.DeviceUtil;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
@@ -64,6 +65,17 @@
Method method = entityClass.getMethod("inflate", LayoutInflater.class,ViewGroup.class,boolean.class);//get method from name "inflate";
B vBind = (B) method.invoke(entityClass,LayoutInflater.from(parent.getContext()),parent,false);//execute method to create a objct of viewbind;
return new ViewBindHolder(vBind);
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ Throwable t = e.getTargetException();// 获取目标异常
+ t.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java b/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java
index e59f3f5..526516e 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java
@@ -4,6 +4,9 @@
import com.duqing.missions.data.BasePageResult;
import com.duqing.missions.databinding.RefreshRecyclerBinding;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* 广场
* Created by Administrator on 2021/11/5 0005.
@@ -11,4 +14,16 @@
public class SquareFragment extends BaseLoadPageFragment<RefreshRecyclerBinding,SquareViewModel,SquareAdapter, BasePageResult<String>> {
+ @Override
+ public void initViews() {
+ super.initViews();
+
+ List<String> mData = new ArrayList<>();
+ mData.add("");
+ mData.add("");
+ mData.add("");
+ mData.add("");
+ mData.add("");
+ adapter.setData(mData);
+ }
}
diff --git a/app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java b/app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java
index e7e1fa6..98ab66a 100644
--- a/app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java
+++ b/app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java
@@ -31,8 +31,9 @@
HallClassifyAdapter adapter = new HallClassifyAdapter();
adapter.setData(new ArrayList<>(Arrays.asList(classifies)));
binding.recycler.setAdapter(adapter);
- binding.textConfirm.setOnClickListener(v -> dismiss());
- binding.textCancel.setOnClickListener(v -> dismiss());
+ setOutsideTouchable(true);
+ binding.textConfirm.setOnClickListener(v -> {adapter.notifyDataSetChanged();dismiss();});
+ binding.textCancel.setOnClickListener(v -> {adapter.notifyDataSetChanged();dismiss();});
}
diff --git a/app/src/main/java/com/duqing/missions/widgets/QuadrateLinearLayout.java b/app/src/main/java/com/duqing/missions/widgets/QuadrateLinearLayout.java
new file mode 100644
index 0000000..97cf63d
--- /dev/null
+++ b/app/src/main/java/com/duqing/missions/widgets/QuadrateLinearLayout.java
@@ -0,0 +1,40 @@
+package com.duqing.missions.widgets;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+/**
+ * My father is Object, ites purpose of 正方形控件
+ *
+ * @purpose Created by Runt (qingingrunt2010@qq.com) on 2019-3-24.
+ */
+
+public class QuadrateLinearLayout extends LinearLayout {
+
+ public QuadrateLinearLayout(Context context, AttributeSet attrs,
+ int defStyle) {
+ super(context, attrs, defStyle);
+ }
+
+ public QuadrateLinearLayout(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public QuadrateLinearLayout(Context context) {
+ super(context);
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ setMeasuredDimension(getDefaultSize(0, widthMeasureSpec),
+ getDefaultSize(0, heightMeasureSpec));
+
+ int childWidthSize = getMeasuredWidth();
+ // 高度和宽度一样
+ heightMeasureSpec = widthMeasureSpec = MeasureSpec.makeMeasureSpec(
+ childWidthSize, MeasureSpec.EXACTLY);
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ }
+
+}
diff --git a/app/src/main/res/color/radio_text.xml b/app/src/main/res/color/radio_text.xml
index e2ff57b..2eb57b1 100644
--- a/app/src/main/res/color/radio_text.xml
+++ b/app/src/main/res/color/radio_text.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:state_checked="true" android:color="@color/sky" />
+ <item android:state_checked="true" android:color="@color/deep_sky" />
<item android:color="@color/black" />
</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v21/btn_white.xml b/app/src/main/res/drawable-v21/btn_white.xml
new file mode 100644
index 0000000..21bba20
--- /dev/null
+++ b/app/src/main/res/drawable-v21/btn_white.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="@color/white_2">
+ <item>
+ <selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false">
+ <shape>
+ <solid android:color="@color/light_gray" />
+ </shape>
+ </item>
+ <item android:state_pressed="true">
+ <shape>
+ <solid android:color="@color/gray" />
+ </shape>
+ </item>
+ <item>
+ <shape>
+ <solid android:color="@color/white" />
+ </shape>
+ </item>
+ </selector>
+ </item>
+</ripple>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/bg_trans_red_circle.xml b/app/src/main/res/drawable/bg_trans_red_circle.xml
new file mode 100644
index 0000000..480f692
--- /dev/null
+++ b/app/src/main/res/drawable/bg_trans_red_circle.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <shape android:shape="rectangle">
+ <solid android:color="@color/trans_red" />
+ <corners android:radius="@dimen/circle"/>
+ </shape>
+ </item>
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_baseline_more_vert_24.xml b/app/src/main/res/drawable/ic_baseline_more_vert_24.xml
new file mode 100644
index 0000000..34b93ec
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_more_vert_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
+</vector>
diff --git a/app/src/main/res/layout/item/layout/dynamic_item_square.xml b/app/src/main/res/layout/item/layout/dynamic_item_square.xml
index 962ebf1..45d4070 100644
--- a/app/src/main/res/layout/item/layout/dynamic_item_square.xml
+++ b/app/src/main/res/layout/item/layout/dynamic_item_square.xml
@@ -1,7 +1,102 @@
<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:background="@drawable/bg_white_corner"
+ android:layout_margin="@dimen/activity_horizontal_margin"
+ android:padding="@dimen/activity_horizontal_margin"
+ android:elevation="@dimen/small_radios"
android:layout_width="match_parent"
- android:layout_height="match_parent" >
+ android:layout_height="wrap_content">
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
+
+ <ImageView
+ android:id="@+id/image_avatar"
+ android:layout_width="50dp"
+ android:layout_height="50dp"
+ android:layout_gravity="center_vertical"
+ android:layout_marginRight="@dimen/frame_margin_lr"
+ tools:srcCompat="@tools:sample/avatars" />
+
+ <TextView
+ android:id="@+id/text_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="名称"
+ android:layout_toRightOf="@id/image_avatar"
+ android:textSize="16sp"
+ android:textStyle="bold"
+ android:layout_marginRight="@dimen/frame_margin_lr"
+ android:textColor="@color/black" />
+
+ <TextView
+ android:id="@+id/text_sex"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:background="@drawable/bg_trans_red_circle"
+ android:textColor="@color/red"
+ android:paddingLeft="@dimen/frame_margin_lr"
+ android:paddingRight="@dimen/frame_margin_lr"
+ android:paddingTop="2dp"
+ android:paddingBottom="3dp"
+ android:text="性别"
+ android:textSize="10sp"
+ android:layout_toRightOf="@id/text_name"/>
+ <TextView
+ android:id="@+id/text_time"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="2020-02-02"
+ android:layout_alignBottom="@id/image_avatar"
+ android:layout_alignStart="@id/text_name"
+ android:textColor="@color/deep_gray" />
+
+ <ImageView
+ android:id="@+id/image_more"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:src="@drawable/ic_baseline_more_vert_24" />
+
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recycler"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:overScrollMode="never"
+ android:layout_below="@id/image_avatar"
+ android:layout_marginTop="@dimen/frame_margin_lr"
+ app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
+ tools:listitem="@layout/item_square"
+ tools:itemCount="9"
+ app:spanCount="3" />
+
+ <TextView
+ android:id="@+id/text_desc"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:maxLines="3"
+ android:textColor="@color/black_4"
+ android:ellipsize="end"
+ android:layout_below="@id/recycler"
+ android:layout_marginTop="@dimen/frame_margin_lr"
+ android:text="描述" />
+
+
+
+ <ImageView
+ android:id="@+id/check_like"
+ android:src="@android:drawable/btn_star_big_on"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/text_desc" />
+
+ <ImageView
+ android:id="@+id/comment"
+ android:src="@android:drawable/btn_star_big_on"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/text_desc"
+ android:layout_alignParentRight="true" />
+
+</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_square.xml b/app/src/main/res/layout/item_square.xml
index 748af5f..3ae11cc 100644
--- a/app/src/main/res/layout/item_square.xml
+++ b/app/src/main/res/layout/item_square.xml
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.duqing.missions.widgets.QuadrateLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@drawable/bg_white_corner"
- android:layout_marginTop="@dimen/activity_horizontal_margin"
- android:layout_marginLeft="@dimen/activity_horizontal_margin"
- android:layout_marginRight="@dimen/activity_horizontal_margin"
- android:elevation="@dimen/small_radios">
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <ImageView
+ android:id="@+id/image"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scaleType="centerCrop"
+ tools:srcCompat="@tools:sample/avatars" />
-
-</LinearLayout>
\ No newline at end of file
+</com.duqing.missions.widgets.QuadrateLinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index d2b0fc8..b15bd48 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -6,8 +6,10 @@
<color name="white">#FFFFFFFF</color>
<color name="white_2">#F3F3F3</color>
<color name="red">#FF1414</color>
+ <color name="trans_red">#4DFF1414</color>
<color name="light_gray">#E3E3E3</color>
<color name="gray">#CDCDCD</color>
+ <color name="deep_gray">#808080</color>
<color name="trans_gray">#4DFFFFFF</color>
<color name="enable">#ECECEC</color>
<color name="enable_sky">#889DB6</color>
--
Gitblit v1.9.1