From 1eebc6509e0e0adb754a72a7b0ba47e6c40e8b4c Mon Sep 17 00:00:00 2001 From: ongbo <1308161085@qq.com> Date: Mon, 6 Jan 2020 20:52:16 +0800 Subject: [PATCH] UPDATE 1 --- app/app.iml | 11 ++ app/build.gradle | 4 + .../PersonalCenter/MyPersonCenter.java | 123 ++++++++++++++++ .../PersonalCenter/RecyclerViewFragment.java | 80 +++++++++++ .../RecyclerViewPagerAdapter.java | 132 ++++++++++++++++++ .../cmknowledgegraph/MainActivity.java | 5 +- app/src/main/res/drawable/van.png | Bin 0 -> 1814 bytes app/src/main/res/layout/chat_content.xml | 45 ++++++ app/src/main/res/layout/content_cardview.xml | 27 ++++ .../main/res/layout/fragment_recyclerview.xml | 6 + app/src/main/res/layout/header_logo.xml | 12 ++ .../main/res/layout/internetforumfragment.xml | 81 +++++++++++ 12 files changed, 525 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/example/PersonalCenter/MyPersonCenter.java create mode 100644 app/src/main/java/com/example/PersonalCenter/RecyclerViewFragment.java create mode 100644 app/src/main/java/com/example/PersonalCenter/RecyclerViewPagerAdapter.java create mode 100644 app/src/main/res/drawable/van.png create mode 100644 app/src/main/res/layout/chat_content.xml create mode 100644 app/src/main/res/layout/content_cardview.xml create mode 100644 app/src/main/res/layout/fragment_recyclerview.xml create mode 100644 app/src/main/res/layout/header_logo.xml create mode 100644 app/src/main/res/layout/internetforumfragment.xml diff --git a/app/app.iml b/app/app.iml index 5903ae2..f061dc3 100644 --- a/app/app.iml +++ b/app/app.iml @@ -105,19 +105,28 @@ + + + + + + + + + @@ -133,6 +142,7 @@ + @@ -149,5 +159,6 @@ + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 5b9be13..7a4feab 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -51,4 +51,8 @@ dependencies { implementation 'liji.library.dev:citypickerview:5.1.0' implementation 'cn.aigestudio.wheelpicker:WheelPicker:1.1.3' implementation 'com.github.open-android:WheelPicker:v1.0.0' +// 个人中心页面 + implementation 'com.github.florent37:materialviewpager:1.2.3' + implementation 'com.ramotion.foldingcell:folding-cell:1.2.3' + implementation 'de.hdodenhof:circleimageview:2.2.0' } diff --git a/app/src/main/java/com/example/PersonalCenter/MyPersonCenter.java b/app/src/main/java/com/example/PersonalCenter/MyPersonCenter.java new file mode 100644 index 0000000..a46e3d1 --- /dev/null +++ b/app/src/main/java/com/example/PersonalCenter/MyPersonCenter.java @@ -0,0 +1,123 @@ +package com.example.PersonalCenter; + +import android.content.Context; +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 androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentStatePagerAdapter; +import androidx.viewpager.widget.ViewPager; + +import com.example.cmknowledgegraph.MainActivity; +import com.example.cmknowledgegraph.R; +import com.github.florent37.materialviewpager.MaterialViewPager; +import com.github.florent37.materialviewpager.header.HeaderDesign; + +public class MyPersonCenter extends Fragment { + MainActivity mainActivity; + @Override + public void onAttach(Context context) { + super.onAttach(context); + this.mainActivity = (MainActivity) context; + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + return inflater.inflate(R.layout.chat_content, container, false); + } + + @Override + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + //包装处理逻辑 + //得到MaterViewPager实例 + MaterialViewPager materialViewPager = (MaterialViewPager) getActivity().findViewById(R.id.materialViewPager); + //为MaterialViewPager添加监听 + materialViewPager.setMaterialViewPagerListener(new MaterialViewPager.Listener() { + @Override + //设置转换动画和图片,颜色 + public HeaderDesign getHeaderDesign(int page) { + switch (page){ + case 0: + return HeaderDesign.fromColorResAndDrawable( + R.color.blue, + getResources().getDrawable(R.drawable.home_back) + ); + case 1: + return HeaderDesign.fromColorResAndDrawable( + R.color.green, + getResources().getDrawable(R.drawable.home_back) + ); + case 2: + return HeaderDesign.fromColorResAndDrawable( + R.color.cyan, + getResources().getDrawable(R.drawable.home_back) + ); + } + + return null; + } + }); + //设置Toolbar + Toolbar toolbar = materialViewPager.getToolbar(); + if(toolbar!=null){ + mainActivity.setSupportActionBar(toolbar); + ActionBar actionBar = mainActivity.getSupportActionBar(); + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setDisplayShowHomeEnabled(true); + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setDisplayUseLogoEnabled(false); + actionBar.setHomeButtonEnabled(true); + } + //为Viewpager设置适配器 + ViewPager viewPager = materialViewPager.getViewPager(); + viewPager.setAdapter(new FragmentStatePagerAdapter(getChildFragmentManager()) { + @NonNull + @Override + public Fragment getItem(int position) { + switch (position % 3){ + case 0: + return RecyclerViewFragment.newInstance(0,mainActivity); + case 1: + return RecyclerViewFragment.newInstance(1,mainActivity); + case 2: + return RecyclerViewFragment.newInstance(1,mainActivity); + default: + return RecyclerViewFragment.newInstance(1,mainActivity); + + } + } + + @Override + public int getCount() { + return 3; + } + + @Nullable + @Override + public CharSequence getPageTitle(int position) { + switch (position % 3){ + case 0: + return "jil"; + case 1: + return "drug"; + case 2: + return "药友"; + default: + return "TAPN"; + } + } + }); + materialViewPager.getViewPager().setOffscreenPageLimit(materialViewPager + .getViewPager().getAdapter().getCount()); + materialViewPager.getPagerTitleStrip().setViewPager(materialViewPager.getViewPager()); + } +} diff --git a/app/src/main/java/com/example/PersonalCenter/RecyclerViewFragment.java b/app/src/main/java/com/example/PersonalCenter/RecyclerViewFragment.java new file mode 100644 index 0000000..af24a7b --- /dev/null +++ b/app/src/main/java/com/example/PersonalCenter/RecyclerViewFragment.java @@ -0,0 +1,80 @@ +package com.example.PersonalCenter; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.cardview.widget.CardView; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.example.cmknowledgegraph.R; +import com.github.florent37.materialviewpager.header.MaterialViewPagerHeaderDecorator; + +import java.util.ArrayList; +import java.util.List; + +public class RecyclerViewFragment extends Fragment { + int flag; + AppCompatActivity appCompatActivity; + + public void setAppCompatActivity(AppCompatActivity appCompatActivity) { + this.appCompatActivity = appCompatActivity; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public static Fragment newInstance(int flag, AppCompatActivity appCompatActivity){ + RecyclerViewFragment recyclerViewFragment = new RecyclerViewFragment(); + recyclerViewFragment.setFlag(flag); + recyclerViewFragment.setAppCompatActivity(appCompatActivity); + return recyclerViewFragment; + } + final List items = new ArrayList<>(); + static final int ITEMS = 7; + + RecyclerView mRecyclerView; + CardView mCardView; + @Override + public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_recyclerview, container, false); + } + public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + mRecyclerView=view.findViewById(R.id.recyclerView); +// mCardView = view.findViewById(); + //需要根据网路请求发送数据,来请求一个页可以有多少文章条目,而且针对每一个tab,都要有不同的显示方式 + for (int i=0;i { + List contents; + int flag; + AppCompatActivity appCompatActivity; + + public void setAppCompatActivity(AppCompatActivity appCompatActivity) { + this.appCompatActivity = appCompatActivity; + } + + public RecyclerViewPagerAdapter(List contents, int flag) + { + this.flag = flag; + this.contents = contents; + } + public int getItemCount() { + return contents.size(); + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + + View view = null; + switch (flag){ + case 0://论坛 + view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.internetforumfragment, parent, false); +// +// view = LayoutInflater.from(parent.getContext()).inflate(R.layout.drug_friends,parent,false); + FoldingCell foldingCell = view.findViewById(R.id.folding_cell); + foldingCell.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + foldingCell.toggle(false); + } + }); + return new RecyclerView.ViewHolder(view) { + }; + + + case 1://动态 + view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.content_cardview, parent, false); + + return new RecyclerView.ViewHolder(view) { + }; + + case 2://好友列表 + view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.content_cardview, parent, false); + + return new RecyclerView.ViewHolder(view) { + }; +// view = LayoutInflater.from(parent.getContext()) +// .inflate(R.layout.drug_friends,parent,false); +// CardStackView cardStackView = view.findViewById(R.id.stackview); +// Integer[] item = new Integer[]{R.color.color_1, +// R.color.color_2, +// R.color.color_3, +// R.color.color_4, +// R.color.color_5, +// R.color.color_6, +// R.color.color_7, +// R.color.color_8, +// R.color.color_9, +// R.color.color_10, +// R.color.color_11, +// R.color.color_12, +// R.color.color_13, +// R.color.color_14, +// R.color.color_15, +// R.color.color_16, +// R.color.color_17, +// R.color.color_18, +// R.color.color_19, +// R.color.color_20, +// R.color.color_21, +// R.color.color_22, +// R.color.color_23, +// R.color.color_24, +// R.color.color_25, +// R.color.color_26}; +// DrugFriendsCardAdapter drugFriendsCardAdapter = new DrugFriendsCardAdapter(parent.getContext()); +// drugFriendsCardAdapter.setAppCompatActivity(appCompatActivity); +// +// cardStackView.setAdapter(drugFriendsCardAdapter); +// cardStackView.setItemExpendListener(new CardStackView.ItemExpendListener() { +// @Override +// public void onItemExpend(boolean expend) { +// +// } +// }); +// cardStackView.setAnimatorAdapter(new AllMoveDownAnimatorAdapter(cardStackView)); +// new Handler().postDelayed(new Runnable() { +// @Override +// public void run() { +// drugFriendsCardAdapter.updateData(Arrays.asList(item)); +// } +// },200); +// return new RecyclerView.ViewHolder(view) { +// @Override +// public String toString() { +// return super.toString(); +// } +// }; + + } + return null; + + + } + @Override + public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + //在这里设置某一个条目的监听 + } +} diff --git a/app/src/main/java/com/example/cmknowledgegraph/MainActivity.java b/app/src/main/java/com/example/cmknowledgegraph/MainActivity.java index cdf676d..b2bb6e9 100644 --- a/app/src/main/java/com/example/cmknowledgegraph/MainActivity.java +++ b/app/src/main/java/com/example/cmknowledgegraph/MainActivity.java @@ -2,6 +2,7 @@ package com.example.cmknowledgegraph; import android.os.Bundle; +import com.example.PersonalCenter.MyPersonCenter; import com.example.PersonalCenter.PersonContent; //import com.example.cmknowledgegraph.MainContent; import com.example.SearchCenter.SearchContent; @@ -38,9 +39,11 @@ public class MainActivity extends AppCompatActivity { transaction.commit(); //一定不要忘记commit,否则不会显示 return true; case R.id.chat: +// transaction.replace(R.id.content,new MyPersonCenter()); +// transaction.commit(); return true; case R.id.person: - transaction.replace(R.id.content,new PersonContent()); //对应的java class + transaction.replace(R.id.content,new MyPersonCenter()); //对应的java class transaction.commit(); //一定不要忘记commit,否则不会显示 return true; } diff --git a/app/src/main/res/drawable/van.png b/app/src/main/res/drawable/van.png new file mode 100644 index 0000000000000000000000000000000000000000..d8de83e12b7804bf9266589565f5bbc525c815c1 GIT binary patch literal 1814 zcmV+x2kH2UP)Px*&`Cr=RA>e5nhQ)*R~X0tw+|7Df9H2x{bLlI*og{vB;uPqhT|O zk7ULf&BSLG7pL(RU)h`!HZ$ikr*m$o@x>GbT&7MP5Gc>KPzp#}pxm=_iMP*7dy7>= z)02?%o$q}2JKy)a=bT>dJq&2k9~hq@kud8yIS>i~xer3-MyKWF`70lpzZ^X)KYxU$ zmkNv>f;Qv+g55o4j!nN-CD8A)s@sFgEp1i_XDwG1MJ&k#u1%r+MA$~WRwCZC`&k+q znv%Ed&pPUl$O9S_2dK8bY0lRDnVTLLR=|Ve0O^g*Yd7x8TJ$)ux;?0@uMeZV?1`P0!f%oB#`ts(=7xGMUg|GVN>nC912b z7L#v>%|nwVIx;#sFFk!%h}eq)2UN9qP#m0wCX+fQKI$SeGDI;DWh9pRv$WII)c7>K z#cYPAvihYhu|tlFxiDZrSuAGp`xM>N{ycLUwK^@v4pmM6XwmY8-e3g`C@xVk`;^&i zLiTT`(JP`iKA7*5k#-PYO6>h^CB=FUhet7~QzEmlURQ1oPzREnm~lI8S+=g*WxDWvB7o40zX z`izkF43V+Cy}408b=q5rp^5$4H}+drsOR-u-R(iG8J_=wV?ubC)7Pmj)My4?A1c(r z>7=6oNh}pUbhHSlrRSK~D4v91&DfS-5R@PwcV!TiI}<@o5R@PmcV!TiI}<@o5R@PmcV(BK%v;+DZk7XO z2Ea<+!Vc&SOc)3#LKyc^p0Y+$Pf%D17)(G!C@``gFev)*;_?}kl_fZm3mm#Z(A45g zKrRJlClI7hW)S`ifZeSj_~HV+ffdeiajl`T1fRXeAZcLNfcdoa%xwf|KN5U(*&PxW zOj|qfT|SU{j6mDu{bfIQjlas-djzSO!jQNz{-qyk=KnyDRnWD#d;+!ZEW!0M@2M5n z0ZUF23a)EGc^|>q;_oUtTTXN1IqO|pTr``r2`&};9+$N4(D?OWm}EL3Rj!U5+kcf3 zY`^5F0mhFTjl~P+VEUWMkVvH{DzQ`4Hv@gc7>w#qJwM^H>}P@+hnFj1VWCKymx_6* zvk*Tx4)=>nV7A!ziCgr1%j_}qJ%Pk~Y^&cMfK@a5gQ+_-K@{GVzpyxW-=6W@+3#W7 zhSij@eXxT^zQ^ZVciN29QNXE%K22KNwPJ-kbYDt2YEL1ecQ2efc?7C~_D^^E+B!^o ze*r41>H2$A_RV6DthUF_>xF9~?h6EW@ePgLMYuwN4Qp07LE?JT=BHv<{2-fQ5nX}? zlRXJrhaZJphqySmD;6(sg2d^R(NS3Y=@L$~mE3aQ;*zzrw5nt>*+e=qCfdBX2o@_O zMl+W2>S6I}goXCxn@;uE(Zg}~p8YJq?P_vt@{6R_$;gk5{0h8G-Hqd2j!PK9i%zwx zp6+Y+SeE_W$w;8l)@I#lmP?GX{!0tXXg~LNT)@tzid842fk6iyt*-ODbuN9MWMREl zlUHJMdXwY}}IvGkU>!%8-X z{u7ky#4+@NdjXAQ5=~A?7{)+ncP?SsqxzEkt6d%Gf6=W@&xb~>;s5{u07*qoM6N<$ Ef^?&M%>V!Z literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/chat_content.xml b/app/src/main/res/layout/chat_content.xml new file mode 100644 index 0000000..f8b71c9 --- /dev/null +++ b/app/src/main/res/layout/chat_content.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/content_cardview.xml b/app/src/main/res/layout/content_cardview.xml new file mode 100644 index 0000000..b2ef387 --- /dev/null +++ b/app/src/main/res/layout/content_cardview.xml @@ -0,0 +1,27 @@ + + + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + + android:foreground="?android:attr/selectableItemBackgroundBorderless" + + + + diff --git a/app/src/main/res/layout/fragment_recyclerview.xml b/app/src/main/res/layout/fragment_recyclerview.xml new file mode 100644 index 0000000..f4bced4 --- /dev/null +++ b/app/src/main/res/layout/fragment_recyclerview.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/app/src/main/res/layout/header_logo.xml b/app/src/main/res/layout/header_logo.xml new file mode 100644 index 0000000..8377ad9 --- /dev/null +++ b/app/src/main/res/layout/header_logo.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/app/src/main/res/layout/internetforumfragment.xml b/app/src/main/res/layout/internetforumfragment.xml new file mode 100644 index 0000000..aba0c88 --- /dev/null +++ b/app/src/main/res/layout/internetforumfragment.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file