diff --git a/Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml b/Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml
index e8312a5..aaa24f4 100644
--- a/Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml
+++ b/Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml
@@ -9,7 +9,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.LeudaemiaLikeMe">
-
+ * See the Android Training lesson Communicating with Other Fragments for more information. + */ + public interface OnFragmentInteractionListener { + // TODO: Update argument type and name + void onFragmentInteraction(Uri uri); + } +} diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/FansFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/FansFragment.java new file mode 100644 index 0000000..88874cc --- /dev/null +++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/FansFragment.java @@ -0,0 +1,123 @@ +package com.example.leudaemialikeme.Fragment; + +import android.content.Context; +import android.net.Uri; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + +import com.example.leudaemialikeme.R; + +/** + * A simple {@link Fragment} subclass. + * Activities that contain this fragment must implement the + * {@link PrivateMsgFragment.OnFragmentInteractionListener} interface + * to handle interaction events. + * Use the {@link PrivateMsgFragment#newInstance} factory method to + * create an instance of this fragment. + */ +public class FansFragment extends Fragment implements ViewPager.OnPageChangeListener { + // TODO: Rename parameter arguments, choose names that match + // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; + + // TODO: Rename and change types of parameters + private String mParam1; + private String mParam2; + + private View view; + + private OnFragmentInteractionListener mListener; + + public FansFragment() { + // Required empty public constructor + } + + /** + * Use this factory method to create a new instance of + * this fragment using the provided parameters. + * + * @param param1 Parameter 1. + * @param param2 Parameter 2. + * @return A new instance of fragment PrivateMsgFragment. + */ + // TODO: Rename and change types and number of parameters + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (getArguments() != null) { + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); + } + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + // return inflater.inflate(R.layout.fragment_private_msg2, container, false); + super.onCreate(savedInstanceState); + View view = inflater.inflate(R.layout.fragment_fans,container,false); + return view; + } + + // TODO: Rename method, update argument and hook method into UI event + public void onButtonPressed(Uri uri) { + if (mListener != null) { + mListener.onFragmentInteraction(uri); + } + } + + @Override + public void onAttach(Context context) { + super.onAttach(context); + if (context instanceof OnFragmentInteractionListener) { + mListener = (OnFragmentInteractionListener) context; + } else { + throw new RuntimeException(context.toString() + + " must implement OnFragmentInteractionListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int position) { + + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + + /** + * This interface must be implemented by activities that contain this + * fragment to allow an interaction in this fragment to be communicated + * to the activity and potentially other fragments contained in that + * activity. + *
+ * See the Android Training lesson Communicating with Other Fragments for more information.
+ */
+ public interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ void onFragmentInteraction(Uri uri);
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/IndexFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/IndexFragment.java
index db015c7..ec1a648 100644
--- a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/IndexFragment.java
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/IndexFragment.java
@@ -116,7 +116,7 @@ public class IndexFragment extends Fragment {
clockLinear.setOnClickListener(new View.OnClickListener(){
@Override
- public void onClick(View v) {
+ public void onClick(View view) {
Toast.makeText(view.getContext(),"x1233",Toast.LENGTH_SHORT).show();
}
});
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageChannelFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageChannelFragment.java
new file mode 100644
index 0000000..cef283a
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageChannelFragment.java
@@ -0,0 +1,64 @@
+package com.example.leudaemialikeme.Fragment;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import com.example.leudaemialikeme.R;
+
+public class MessageChannelFragment extends Fragment {
+ private static final String ARG_CATEGORY_TITLE = "category_title";
+ private String messageCategoryTitle = "Default";
+ private TextView mTitleField;
+
+ public MessageChannelFragment() {
+ // Required empty public constructor
+ }
+
+ public static MessageChannelFragment newInstance(String messageCategoryTitle) {
+ MessageChannelFragment fragment = new MessageChannelFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_CATEGORY_TITLE,messageCategoryTitle);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ try{
+ messageCategoryTitle = (String)getArguments().getString(ARG_CATEGORY_TITLE);
+ }catch (java.lang.NullPointerException e){
+ System.out.println("TesFragment getArg error!");
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view;
+ if(messageCategoryTitle.equals(" 私信 "))
+ {
+ view = inflater.inflate(R.layout.fragment_private_msg,container,false);
+ }
+ else if(messageCategoryTitle.equals(" 评论 ")){
+ view = inflater.inflate(R.layout.fragment_comment,container,false);
+ }
+ else if(messageCategoryTitle.equals(" 粉丝 ")){
+ view = inflater.inflate(R.layout.fragment_fans,container,false);
+ }
+ else if(messageCategoryTitle.equals(" 赞 ")){
+ view = inflater.inflate(R.layout.fragment_nice,container,false);
+ }
+ else{
+ view = inflater.inflate(R.layout.fragment_message_channel, container, false);
+ mTitleField = (TextView) view.findViewById(R.id.messageCategoryTitle);
+ mTitleField.setText(messageCategoryTitle);
+ }
+ return view;
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageFragment.java
index ce5a8cf..bc4cb03 100644
--- a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageFragment.java
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageFragment.java
@@ -1,65 +1,112 @@
package com.example.leudaemialikeme.Fragment;
import android.os.Bundle;
+import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.HorizontalScrollView;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.viewpager.widget.ViewPager;
+import com.example.leudaemialikeme.Adapter.MessagePageFragmentAdapter;
import com.example.leudaemialikeme.R;
-/**
- * A simple {@link Fragment} subclass.
- * Use the {@link MessageFragment#newInstance} factory method to
- * create an instance of this fragment.
- */
-public class MessageFragment extends Fragment {
- // TODO: Rename parameter arguments, choose names that match
- // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
- private static final String ARG_PARAM1 = "param1";
- private static final String ARG_PARAM2 = "param2";
-
- // TODO: Rename and change types of parameters
- private String mParam1;
- private String mParam2;
+public class MessageFragment extends Fragment implements ViewPager.OnPageChangeListener {
+ private static final String ARG_CHANNEL_LIST = "channel_list";
+ private View view=null; // 碎片的布局实例
+ private ViewPager viewPager; //内导航的碎片的容器
+ private RadioGroup rgChannel=null; // 内导航由单选按钮组构成
+ private HorizontalScrollView hvChannel=null; //单选按钮组可滚动动
+ private String[] channelList = {" 私信 "," 评论 ",
+ " 赞 "," 粉丝 "}; //默认的内导航栏目
+ private MessagePageFragmentAdapter adapter; //viewPager 的适配器
public MessageFragment() {
// Required empty public constructor
}
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment MessageFragment.
- */
- // TODO: Rename and change types and number of parameters
- public static MessageFragment newInstance(String param1, String param2) {
- MessageFragment fragment = new MessageFragment();
- Bundle args = new Bundle();
- args.putString(ARG_PARAM1, param1);
- args.putString(ARG_PARAM2, param2);
- fragment.setArguments(args);
- return fragment;
- }
@Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (getArguments() != null) {
- mParam1 = getArguments().getString(ARG_PARAM1);
- mParam2 = getArguments().getString(ARG_PARAM2);
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ if(view==null){
+ view=inflater.inflate(R.layout.fragment_message, container, false);
+ viewPager=(ViewPager)view.findViewById(R.id.vpNewsList0);
+ initViewPager(); //设置 ViewPager
+
+ rgChannel=(RadioGroup)view.findViewById(R.id.rgChannel0);
+ hvChannel=(HorizontalScrollView)view.findViewById(R.id.hvChannel0);
+ initTab(inflater);
+
+ rgChannel.setOnCheckedChangeListener(
+ new RadioGroup.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ viewPager.setCurrentItem(checkedId);
+ }
+ }
+ );
}
+ return view;
+ }
+
+ private void initTab(LayoutInflater inflater) {//初始化上面的
+ for(int i=0;i
+ * See the Android Training lesson Communicating with Other Fragments for more information.
+ */
+ public interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ void onFragmentInteraction(Uri uri);
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_helper.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_helper.png
new file mode 100644
index 0000000..6d23a6c
Binary files /dev/null and b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_helper.png differ
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_reminding.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_reminding.png
new file mode 100644
index 0000000..7bf93f4
Binary files /dev/null and b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_reminding.png differ
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user.png
new file mode 100644
index 0000000..737d2b1
Binary files /dev/null and b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user.png differ
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user1.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user1.png
new file mode 100644
index 0000000..9e730c1
Binary files /dev/null and b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user1.png differ
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/tab_selector.xml b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/tab_selector.xml
new file mode 100644
index 0000000..7da99e3
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/tab_selector.xml
@@ -0,0 +1,41 @@
+
+