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(); } 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); } } 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();}); } app/src/main/java/com/duqing/missions/widgets/QuadrateLinearLayout.java
New file @@ -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); } } 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> app/src/main/res/drawable-v21/btn_white.xml
New file @@ -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> app/src/main/res/drawable/bg_trans_red_circle.xml
New file @@ -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> app/src/main/res/drawable/ic_baseline_more_vert_24.xml
New file @@ -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> 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> <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> 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> </com.duqing.missions.widgets.QuadrateLinearLayout> 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>