Administrator
2021-11-06 a824b62bde75373c9b6b8d3a60b3a279895c8675
广场 帖子 UI
4 files added
7 files modified
239 ■■■■■ changed files
app/src/main/java/com/duqing/missions/base/adapter/BaseAdapter.java 12 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/duqing/missions/ui/main/dynamic/square/SquareFragment.java 15 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/duqing/missions/ui/main/hall/popup/PopupClassify.java 5 ●●●●● patch | view | raw | blame | history
app/src/main/java/com/duqing/missions/widgets/QuadrateLinearLayout.java 40 ●●●●● patch | view | raw | blame | history
app/src/main/res/color/radio_text.xml 2 ●●● patch | view | raw | blame | history
app/src/main/res/drawable-v21/btn_white.xml 23 ●●●●● patch | view | raw | blame | history
app/src/main/res/drawable/bg_trans_red_circle.xml 9 ●●●●● patch | view | raw | blame | history
app/src/main/res/drawable/ic_baseline_more_vert_24.xml 10 ●●●●● patch | view | raw | blame | history
app/src/main/res/layout/item/layout/dynamic_item_square.xml 103 ●●●●● patch | view | raw | blame | history
app/src/main/res/layout/item_square.xml 18 ●●●●● patch | view | raw | blame | history
app/src/main/res/values/colors.xml 2 ●●●●● patch | view | raw | blame | history
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>