From 2976177e925d4e92febb3a659ce168229b4bc756 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Wed, 27 Sep 2023 16:17:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OneToOne/build.gradle | 3 + .../onetoone/activitys/MainActivity.java | 6 ++ .../activitys/fragments/MessageFragment.java | 59 +++++++++- .../activitys/message/MsgFriendFragment.java | 20 ++++ .../activitys/message/MsgMessageFragment.java | 20 ++++ .../src/main/res/drawable/tab_friends.xml | 12 +-- .../src/main/res/layout/activity_main.xml | 102 +++++++++++++----- OneToOne/src/main/res/layout/fragment_msg.xml | 57 +++++++++- .../main/res/layout/fragment_msg_friend.xml | 17 +++ .../main/res/layout/fragment_msg_message.xml | 6 ++ .../mipmap-xxhdpi/ic_message_tab_error.png | Bin 0 -> 1685 bytes .../ic_message_tab_indicator.png | Bin 0 -> 1257 bytes .../res/mipmap-xxhdpi/ic_message_tab_more.png | Bin 0 -> 2624 bytes .../mipmap-xxhdpi/ic_message_tab_woman.png | Bin 0 -> 3451 bytes .../res/mipmap-xxhdpi/ic_message_tab_you.png | Bin 0 -> 1246 bytes app/build.gradle | 4 +- 16 files changed, 264 insertions(+), 42 deletions(-) create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/activitys/message/MsgFriendFragment.java create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/activitys/message/MsgMessageFragment.java create mode 100644 OneToOne/src/main/res/layout/fragment_msg_friend.xml create mode 100644 OneToOne/src/main/res/layout/fragment_msg_message.xml create mode 100644 OneToOne/src/main/res/mipmap-xxhdpi/ic_message_tab_error.png create mode 100644 OneToOne/src/main/res/mipmap-xxhdpi/ic_message_tab_indicator.png create mode 100644 OneToOne/src/main/res/mipmap-xxhdpi/ic_message_tab_more.png create mode 100644 OneToOne/src/main/res/mipmap-xxhdpi/ic_message_tab_woman.png create mode 100644 OneToOne/src/main/res/mipmap-xxhdpi/ic_message_tab_you.png diff --git a/OneToOne/build.gradle b/OneToOne/build.gradle index 12e2aebd0..fbd3c4af9 100644 --- a/OneToOne/build.gradle +++ b/OneToOne/build.gradle @@ -88,4 +88,7 @@ dependencies { implementation 'com.google.android.exoplayer:exoplayer:2.18.5' implementation 'com.google.android.exoplayer:exoplayer-core:2.18.5@aar' + implementation 'cn.rongcloud.sdk:call_kit:5.5.0' // 音视频通话能力 UI 组件 + + } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activitys/MainActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activitys/MainActivity.java index 86b25d080..0d6c319f3 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activitys/MainActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activitys/MainActivity.java @@ -7,8 +7,10 @@ import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; import android.os.Bundle; +import android.view.View; import com.angcyo.tablayout.DslTabLayout; +import com.angcyo.tablayout.DslTabLayoutConfig; import com.angcyo.tablayout.delegate2.ViewPager2Delegate; import com.shayu.onetoone.R; import com.shayu.onetoone.activitys.fragments.BaseFragment; @@ -20,6 +22,10 @@ import com.shayu.onetoone.activitys.fragments.MyFragment; import java.util.ArrayList; import java.util.List; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; +import kotlin.jvm.functions.Function4; + public class MainActivity extends AppCompatActivity { List fragments = new ArrayList<>(); private ViewPager2 viewPager; diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activitys/fragments/MessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activitys/fragments/MessageFragment.java index 63bd90fec..c6e474658 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activitys/fragments/MessageFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activitys/fragments/MessageFragment.java @@ -8,13 +8,70 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.viewpager2.adapter.FragmentStateAdapter; +import androidx.viewpager2.widget.ViewPager2; +import com.angcyo.tablayout.DslTabLayout; +import com.angcyo.tablayout.DslTabLayoutConfig; +import com.angcyo.tablayout.delegate2.ViewPager2Delegate; import com.shayu.onetoone.R; +import com.shayu.onetoone.activitys.message.MsgFriendFragment; +import com.shayu.onetoone.activitys.message.MsgMessageFragment; + +import java.util.ArrayList; +import java.util.List; + +import kotlin.Unit; +import kotlin.jvm.functions.Function1; +import kotlin.jvm.functions.Function4; public class MessageFragment extends BaseFragment { + List fragments = new ArrayList<>(); + @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - return inflater.inflate(R.layout.fragment_msg, container, false); + View view = inflater.inflate(R.layout.fragment_msg, container, false); + initView(view); + return view; + } + + private void initView(View itemView) { + ViewPager2 viewPager2 = itemView.findViewById(R.id.viewPager); + DslTabLayout tabLayout = itemView.findViewById(R.id.dslTabLayout); + //绑定ViewPager2到tabLayout + ViewPager2Delegate.Companion.install(viewPager2, tabLayout, false); + + fragments.add(new MsgMessageFragment());//消息 - 消息 + fragments.add(new MsgFriendFragment()); //消息 - 好友 + viewPager2.setAdapter(new FragmentStateAdapter(this) { + @NonNull + @Override + public Fragment createFragment(int position) { + return fragments.get(position); + } + + @Override + public int getItemCount() { + return fragments.size(); + } + }); + //设置点击事件 + tabLayout.configTabLayoutConfig(new Function1() { + @Override + public Unit invoke(DslTabLayoutConfig dslTabLayoutConfig) { + dslTabLayoutConfig.setOnSelectItemView(new Function4() { + @Override + public Boolean invoke(View itemView, Integer index, Boolean select, Boolean fromUse) { + if (select) {//设置选择的Fragment + viewPager2.setCurrentItem(index); + } + return false; + } + }); + return null; + } + }); } } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activitys/message/MsgFriendFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activitys/message/MsgFriendFragment.java new file mode 100644 index 000000000..5af9c29d3 --- /dev/null +++ b/OneToOne/src/main/java/com/shayu/onetoone/activitys/message/MsgFriendFragment.java @@ -0,0 +1,20 @@ +package com.shayu.onetoone.activitys.message; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.shayu.onetoone.R; +import com.shayu.onetoone.activitys.fragments.BaseFragment; + +public class MsgFriendFragment extends BaseFragment { + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_msg_friend,container,false); + } +} diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activitys/message/MsgMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activitys/message/MsgMessageFragment.java new file mode 100644 index 000000000..0541aba27 --- /dev/null +++ b/OneToOne/src/main/java/com/shayu/onetoone/activitys/message/MsgMessageFragment.java @@ -0,0 +1,20 @@ +package com.shayu.onetoone.activitys.message; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.shayu.onetoone.R; +import com.shayu.onetoone.activitys.fragments.BaseFragment; + +public class MsgMessageFragment extends BaseFragment { + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_msg_message, container, false); + } +} diff --git a/OneToOne/src/main/res/drawable/tab_friends.xml b/OneToOne/src/main/res/drawable/tab_friends.xml index 619280960..96cff0995 100644 --- a/OneToOne/src/main/res/drawable/tab_friends.xml +++ b/OneToOne/src/main/res/drawable/tab_friends.xml @@ -1,13 +1,5 @@ - - - - - - - - - - + + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/activity_main.xml b/OneToOne/src/main/res/layout/activity_main.xml index a9dfe788f..24e3acc4f 100644 --- a/OneToOne/src/main/res/layout/activity_main.xml +++ b/OneToOne/src/main/res/layout/activity_main.xml @@ -12,7 +12,7 @@ android:layout_height="0dp" app:layout_constraintBottom_toTopOf="@+id/dslTabLayout" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" > + app:layout_constraintTop_toTopOf="parent"> @@ -20,39 +20,93 @@ - + + - + + + + + + + - + + + + + + + - + + + + + + + + android:layout_height="match_parent"> + + + + + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/fragment_msg.xml b/OneToOne/src/main/res/layout/fragment_msg.xml index 5c1095715..255b910c5 100644 --- a/OneToOne/src/main/res/layout/fragment_msg.xml +++ b/OneToOne/src/main/res/layout/fragment_msg.xml @@ -3,13 +3,60 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> -