mirror of
https://e.coding.net/mcontext/mContext/sdu.git
synced 2024-09-18 02:24:54 +08:00
修改模块命名
This commit is contained in:
parent
7f1217f30e
commit
02c600a117
@ -22,7 +22,8 @@
|
||||
android:usesCleartextTraffic="true"
|
||||
tools:ignore="UnusedAttribute"
|
||||
tools:replace="android:allowBackup">
|
||||
<activity android:name=".ui.info.InfoEditActivity"></activity>
|
||||
<activity android:name=".post.PostDetailActivity"></activity>
|
||||
<activity android:name=".ui.info.InfoEditActivity" />
|
||||
|
||||
<meta-data
|
||||
android:name="android.max_aspect"
|
||||
|
@ -22,6 +22,9 @@ import okhttp3.Response;
|
||||
import retrofit2.Retrofit;
|
||||
import retrofit2.converter.gson.GsonConverterFactory;
|
||||
|
||||
/**
|
||||
* Application实现类,启动时初始化APP
|
||||
*/
|
||||
public class SDUApp extends Application {
|
||||
|
||||
private static Retrofit mRetrofit;
|
||||
@ -80,7 +83,6 @@ public class SDUApp extends Application {
|
||||
httpClientBuilder.addInterceptor(new LoggingInterceptor());
|
||||
}
|
||||
//添加一个设置header拦截器
|
||||
//header User-Agent 设备系统/app版本号(设备的系统版本号;设备型号)
|
||||
httpClientBuilder.addInterceptor(new Interceptor() {
|
||||
@Override
|
||||
public Response intercept(Interceptor.Chain chain) throws IOException {
|
||||
|
@ -0,0 +1,15 @@
|
||||
package com.yuxihan.sdu.post;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.yuxihan.sdu.R;
|
||||
import com.yuxihan.sdu.comm.BaseActivity;
|
||||
|
||||
public class PostDetailActivity extends BaseActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_post_detail);
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package com.yuxihan.sdu.post;
|
||||
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
import com.tencent.cos.xml.exception.CosXmlClientException;
|
||||
import com.tencent.cos.xml.exception.CosXmlServiceException;
|
||||
import com.tencent.cos.xml.listener.CosXmlProgressListener;
|
||||
import com.tencent.cos.xml.listener.CosXmlResultListener;
|
||||
import com.tencent.cos.xml.model.CosXmlRequest;
|
||||
import com.tencent.cos.xml.model.CosXmlResult;
|
||||
import com.tencent.cos.xml.transfer.COSXMLUploadTask;
|
||||
import com.tencent.cos.xml.transfer.TransferState;
|
||||
import com.tencent.cos.xml.transfer.TransferStateListener;
|
||||
import com.yuxihan.sdu.comm.Const;
|
||||
import com.yuxihan.sdu.comm.SDUApp;
|
||||
import com.yuxihan.sdu.comm.util.UploadTencentSDK;
|
||||
import com.yuxihan.sdu.data.UpdateService;
|
||||
import com.yuxihan.sdu.data.model.DataBean;
|
||||
import com.yuxihan.sdu.data.model.UpdateNicknameParams;
|
||||
import com.yuxihan.sdu.data.model.UpdateUserHeadParams;
|
||||
import com.yuxihan.sdu.ui.info.UpdateNicknameState;
|
||||
import com.yuxihan.sdu.ui.info.UpdateUserHeadState;
|
||||
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
public class PostDetailViewModel extends ViewModel {
|
||||
|
||||
private MutableLiveData<UpdateUserHeadState> updateUserHead = new MutableLiveData<>();
|
||||
|
||||
public MutableLiveData<UpdateUserHeadState> getUpdateUserHead() {
|
||||
return updateUserHead;
|
||||
}
|
||||
|
||||
public void updateNickname(String nickname) {
|
||||
UpdateService updateService = SDUApp.getRetrofit().create(UpdateService.class);
|
||||
Call<DataBean> call = updateService.updateNickname(new UpdateNicknameParams(nickname));
|
||||
call.enqueue(new Callback<DataBean>() {
|
||||
@Override
|
||||
public void onResponse(Call<DataBean> call, Response<DataBean> response) {
|
||||
//请求成功,返回是一个封装为DataBean的响应
|
||||
Log.e("TAG", "接口返回内容 ===== " + response.body().getResult());
|
||||
if ("0".equals(response.body().getErrCode())) {
|
||||
// updateNicknameState.setValue(new UpdateNicknameState(nickname));
|
||||
} else {
|
||||
Toast.makeText(SDUApp.getAppContext(), "保存失败,请重新登陆后再试!", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<DataBean> call, Throwable t) {
|
||||
//请求失败
|
||||
Log.e("TAG", "请求失败:" + t.getMessage());
|
||||
Toast.makeText(SDUApp.getAppContext(), "服务器开小差了!", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.yuxihan.sdu.post;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
/**
|
||||
* ViewModel provider factory to instantiate LoginViewModel.
|
||||
* Required given LoginViewModel has a non-empty constructor
|
||||
*/
|
||||
public class PostDetailViewModelFactory implements ViewModelProvider.Factory {
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
|
||||
if (modelClass.isAssignableFrom(PostDetailViewModel.class)) {
|
||||
return (T) new PostDetailViewModel();
|
||||
} else {
|
||||
throw new IllegalArgumentException("Unknown ViewModel class");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,76 +1,35 @@
|
||||
package com.yuxihan.sdu.ui.grow;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lcodecore.tkrefreshlayout.RefreshListenerAdapter;
|
||||
import com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout;
|
||||
import com.yuxihan.sdu.R;
|
||||
import com.yuxihan.sdu.comm.BaseFragment;
|
||||
import com.yuxihan.sdu.data.model.PostDetailBean;
|
||||
import com.yuxihan.sdu.ui.grow.adapter.GrowListAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class GrowFragment extends BaseFragment {
|
||||
|
||||
private GrowModel growModel;
|
||||
private GrowViewModel growViewModel;
|
||||
|
||||
public View onCreateView(@NonNull LayoutInflater inflater,
|
||||
ViewGroup container, Bundle savedInstanceState) {
|
||||
growModel =
|
||||
new ViewModelProvider(this).get(GrowModel.class);
|
||||
growViewModel =
|
||||
new ViewModelProvider(this).get(GrowViewModel.class);
|
||||
View root = inflater.inflate(R.layout.fragment_grow, container, false);
|
||||
initView(root);
|
||||
final TextView textView = root.findViewById(R.id.text_dashboard);
|
||||
growViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
|
||||
@Override
|
||||
public void onChanged(@Nullable String s) {
|
||||
textView.setText(s);
|
||||
}
|
||||
});
|
||||
return root;
|
||||
}
|
||||
|
||||
private void initView(View root) {
|
||||
|
||||
TwinklingRefreshLayout refreshLayout = root.findViewById(R.id.refreshLayout);
|
||||
refreshLayout.setOnRefreshListener(new RefreshListenerAdapter() {
|
||||
@Override
|
||||
public void onRefresh(final TwinklingRefreshLayout refreshLayout) {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
refreshLayout.finishRefreshing();
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMore(final TwinklingRefreshLayout refreshLayout) {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
refreshLayout.finishLoadmore();
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
});
|
||||
|
||||
RecyclerView growListRV = root.findViewById(R.id.rv_grow_list);
|
||||
growListRV.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
growListRV.setHasFixedSize(true);
|
||||
GrowListAdapter growListAdapter = new GrowListAdapter(null);
|
||||
growListRV.setAdapter(growListAdapter);
|
||||
growModel.getPostListLD().observe(getViewLifecycleOwner(), new Observer<ArrayList<PostDetailBean>>() {
|
||||
@Override
|
||||
public void onChanged(ArrayList<PostDetailBean> postDetailBeans) {
|
||||
growListAdapter.updateData(postDetailBeans);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
package com.yuxihan.sdu.ui.vaccine;
|
||||
package com.yuxihan.sdu.ui.grow;
|
||||
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
public class VaccineViewModel extends ViewModel {
|
||||
public class GrowViewModel extends ViewModel {
|
||||
|
||||
private MutableLiveData<String> mText;
|
||||
|
||||
public VaccineViewModel() {
|
||||
public GrowViewModel() {
|
||||
mText = new MutableLiveData<>();
|
||||
mText.setValue("This is dashboard fragment");
|
||||
}
|
75
app/src/main/java/com/yuxihan/sdu/ui/home/HomeFragment.java
Normal file
75
app/src/main/java/com/yuxihan/sdu/ui/home/HomeFragment.java
Normal file
@ -0,0 +1,75 @@
|
||||
package com.yuxihan.sdu.ui.home;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.lcodecore.tkrefreshlayout.RefreshListenerAdapter;
|
||||
import com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout;
|
||||
import com.yuxihan.sdu.R;
|
||||
import com.yuxihan.sdu.comm.BaseFragment;
|
||||
import com.yuxihan.sdu.data.model.PostDetailBean;
|
||||
import com.yuxihan.sdu.ui.home.adapter.HomeListAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class HomeFragment extends BaseFragment {
|
||||
|
||||
private HomeModel homeModel;
|
||||
|
||||
public View onCreateView(@NonNull LayoutInflater inflater,
|
||||
ViewGroup container, Bundle savedInstanceState) {
|
||||
homeModel =
|
||||
new ViewModelProvider(this).get(HomeModel.class);
|
||||
View root = inflater.inflate(R.layout.fragment_home, container, false);
|
||||
initView(root);
|
||||
return root;
|
||||
}
|
||||
|
||||
private void initView(View root) {
|
||||
|
||||
TwinklingRefreshLayout refreshLayout = root.findViewById(R.id.refreshLayout);
|
||||
refreshLayout.setOnRefreshListener(new RefreshListenerAdapter() {
|
||||
@Override
|
||||
public void onRefresh(final TwinklingRefreshLayout refreshLayout) {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
refreshLayout.finishRefreshing();
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMore(final TwinklingRefreshLayout refreshLayout) {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
refreshLayout.finishLoadmore();
|
||||
}
|
||||
}, 2000);
|
||||
}
|
||||
});
|
||||
|
||||
RecyclerView growListRV = root.findViewById(R.id.rv_grow_list);
|
||||
growListRV.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
growListRV.setHasFixedSize(true);
|
||||
HomeListAdapter homeListAdapter = new HomeListAdapter(null);
|
||||
growListRV.setAdapter(homeListAdapter);
|
||||
homeModel.getPostListLD().observe(getViewLifecycleOwner(), new Observer<ArrayList<PostDetailBean>>() {
|
||||
@Override
|
||||
public void onChanged(ArrayList<PostDetailBean> postDetailBeans) {
|
||||
homeListAdapter.updateData(postDetailBeans);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package com.yuxihan.sdu.ui.grow;
|
||||
package com.yuxihan.sdu.ui.home;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
@ -7,12 +7,12 @@ import com.yuxihan.sdu.data.model.PostDetailBean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class GrowModel extends ViewModel {
|
||||
public class HomeModel extends ViewModel {
|
||||
|
||||
private MutableLiveData<String> mText;
|
||||
private MutableLiveData<ArrayList<PostDetailBean>> postListLD;
|
||||
|
||||
public GrowModel() {
|
||||
public HomeModel() {
|
||||
postListLD = new MutableLiveData<>();
|
||||
ArrayList<String> picUrlList = new ArrayList<>();
|
||||
picUrlList.add("http://t9.baidu.com/it/u=188672807,2175104643&fm=79&app=86&f=JPEG?w=1280&h=853");
|
@ -1,8 +1,10 @@
|
||||
package com.yuxihan.sdu.ui.grow.adapter;
|
||||
package com.yuxihan.sdu.ui.home.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
@ -18,15 +20,16 @@ import com.yuxihan.sdu.R;
|
||||
import com.yuxihan.sdu.comm.util.CommViewHolder;
|
||||
import com.yuxihan.sdu.comm.util.TimeConvert;
|
||||
import com.yuxihan.sdu.data.model.PostDetailBean;
|
||||
import com.yuxihan.sdu.post.PostDetailActivity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class GrowListAdapter extends RecyclerView.Adapter {
|
||||
public class HomeListAdapter extends RecyclerView.Adapter {
|
||||
|
||||
private ArrayList<PostDetailBean> mDataSet;
|
||||
private Context mContext;
|
||||
|
||||
public GrowListAdapter(ArrayList<PostDetailBean> myDataSet) {
|
||||
public HomeListAdapter(ArrayList<PostDetailBean> myDataSet) {
|
||||
mDataSet = myDataSet;
|
||||
}
|
||||
|
||||
@ -87,6 +90,12 @@ public class GrowListAdapter extends RecyclerView.Adapter {
|
||||
}
|
||||
}
|
||||
ngvPicContainer.setAdapter(new NineGridViewClickAdapter(mContext, imageInfoList));
|
||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mContext.startActivity(new Intent(mContext, PostDetailActivity.class));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
@ -1,4 +1,4 @@
|
||||
package com.yuxihan.sdu.ui.grow.adapter;
|
||||
package com.yuxihan.sdu.ui.home.adapter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
@ -1,35 +0,0 @@
|
||||
package com.yuxihan.sdu.ui.vaccine;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.yuxihan.sdu.R;
|
||||
import com.yuxihan.sdu.comm.BaseFragment;
|
||||
|
||||
public class VaccineFragment extends BaseFragment {
|
||||
|
||||
private VaccineViewModel vaccineViewModel;
|
||||
|
||||
public View onCreateView(@NonNull LayoutInflater inflater,
|
||||
ViewGroup container, Bundle savedInstanceState) {
|
||||
vaccineViewModel =
|
||||
new ViewModelProvider(this).get(VaccineViewModel.class);
|
||||
View root = inflater.inflate(R.layout.fragment_vaccine, container, false);
|
||||
final TextView textView = root.findViewById(R.id.text_dashboard);
|
||||
vaccineViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
|
||||
@Override
|
||||
public void onChanged(@Nullable String s) {
|
||||
textView.setText(s);
|
||||
}
|
||||
});
|
||||
return root;
|
||||
}
|
||||
}
|
12
app/src/main/res/drawable/ic_home.xml
Normal file
12
app/src/main/res/drawable/ic_home.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="200dp"
|
||||
android:height="200dp"
|
||||
android:viewportWidth="1024"
|
||||
android:viewportHeight="1024">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M927.04,488.11l-391.2,-377.08c-11.56,-11.15 -29.98,-11.15 -41.55,0l-391.1,377.08c-11.87,11.46 -12.28,30.49 -0.82,42.36 11.46,11.97 30.49,12.28 42.36,0.82L515.07,174.26 885.4,531.29c5.83,5.63 13.3,8.39 20.77,8.39 7.88,0 15.66,-3.07 21.59,-9.21 11.46,-11.87 11.15,-30.8 -0.72,-42.36z"/>
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M828.2,532.72c-16.58,0 -29.98,13.41 -29.98,29.98L798.21,861.4L636.84,861.4L636.84,643.95c0,-16.58 -13.4,-29.98 -29.98,-29.98L423.28,613.97c-16.58,0 -29.98,13.4 -29.98,29.98L393.3,861.4L231.93,861.4L231.93,571.09c0,-16.58 -13.4,-29.98 -29.98,-29.98s-29.98,13.4 -29.98,29.98v320.29c0,16.58 13.4,29.98 29.98,29.98h221.34c16.58,0 29.98,-13.4 29.98,-29.98v-217.55L577.08,673.83L577.08,891.28c0,16.58 13.4,29.98 29.98,29.98L828.4,921.26c16.58,0 29.98,-13.4 29.98,-29.98L858.38,562.7c-0.2,-16.58 -13.61,-29.98 -30.19,-29.98zM588.34,319.37c-11.66,-11.67 -30.7,-11.67 -42.36,0 -11.66,11.66 -11.66,30.7 0,42.36l73.47,73.47c5.83,5.83 13.51,8.8 21.18,8.8s15.35,-2.97 21.18,-8.8c11.66,-11.67 11.66,-30.7 0,-42.36l-73.47,-73.47zM669.28,465.8a31.52,31.52 0,1 0,63.03 0,31.52 31.52,0 1,0 -63.03,0z"/>
|
||||
</vector>
|
Binary file not shown.
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 11 KiB |
48
app/src/main/res/layout/activity_post_detail.xml
Normal file
48
app/src/main/res/layout/activity_post_detail.xml
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".post.PostDetailActivity">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rl_account_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="75dp"
|
||||
android:background="@color/white_bg"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingTop="25dp"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_back"
|
||||
android:layout_width="50dp"
|
||||
android:layout_height="50dp"
|
||||
android:padding="14dp"
|
||||
android:src="@drawable/ic_arrow_left" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:paddingTop="12dp"
|
||||
android:text="@string/grow_record_detail"
|
||||
android:textColor="@color/text_black"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:padding="2dp"
|
||||
android:src="@drawable/ic_add"
|
||||
android:visibility="gone" />
|
||||
</RelativeLayout>
|
||||
|
||||
<include layout="@layout/view_divider" />
|
||||
|
||||
|
||||
</LinearLayout>
|
@ -27,7 +27,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:text="@string/account_info"
|
||||
android:text="@string/nav_account"
|
||||
android:textColor="@color/text_black"
|
||||
android:textSize="20sp" />
|
||||
|
||||
|
@ -1,59 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".ui.grow.GrowFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rl_grow_title"
|
||||
<TextView
|
||||
android:id="@+id/text_dashboard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="75dp"
|
||||
android:background="@color/white_bg"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingTop="25dp"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="12dp"
|
||||
android:src="@drawable/ic_cam" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:text="@string/grow_record"
|
||||
android:textColor="@color/text_black"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:padding="2dp"
|
||||
android:src="@drawable/ic_add" />
|
||||
</RelativeLayout>
|
||||
|
||||
<com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout
|
||||
android:id="@+id/refreshLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintHeight_percent="0.5"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rl_grow_title">
|
||||
<!-- app:tr_head_height="100dp"
|
||||
app:tr_wave_height="180dp"-->
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_grow_list"
|
||||
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:overScrollMode="never" />
|
||||
</com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout>
|
||||
</LinearLayout>
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:textAlignment="center"
|
||||
android:textSize="20sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
59
app/src/main/res/layout/fragment_home.xml
Normal file
59
app/src/main/res/layout/fragment_home.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".ui.home.HomeFragment">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/rl_grow_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="75dp"
|
||||
android:background="@color/white_bg"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingTop="25dp"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_marginStart="12dp"
|
||||
android:src="@drawable/ic_cam" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:text="@string/nav_home"
|
||||
android:textColor="@color/text_black"
|
||||
android:textSize="20sp" />
|
||||
|
||||
<ImageView
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="30dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginEnd="12dp"
|
||||
android:padding="2dp"
|
||||
android:src="@drawable/ic_add" />
|
||||
</RelativeLayout>
|
||||
|
||||
<com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout
|
||||
android:id="@+id/refreshLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_constraintHeight_percent="0.5"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rl_grow_title">
|
||||
<!-- app:tr_head_height="100dp"
|
||||
app:tr_wave_height="180dp"-->
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_grow_list"
|
||||
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:overScrollMode="never" />
|
||||
</com.lcodecore.tkrefreshlayout.TwinklingRefreshLayout>
|
||||
</LinearLayout>
|
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ui.vaccine.VaccineFragment">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_dashboard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:textAlignment="center"
|
||||
android:textSize="20sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -3,17 +3,17 @@
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_home"
|
||||
android:icon="@drawable/ic_home"
|
||||
android:title="@string/nav_home" />
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_grow"
|
||||
android:icon="@drawable/ic_grow"
|
||||
android:title="@string/grow_record" />
|
||||
android:title="@string/nav_grow"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_dashboard"
|
||||
android:icon="@drawable/ic_vaccine"
|
||||
android:title="@string/vaccine_plan"/>
|
||||
|
||||
<item
|
||||
android:id="@+id/navigation_notifications"
|
||||
android:id="@+id/navigation_account"
|
||||
android:icon="@drawable/ic_account"
|
||||
android:title="@string/account_info" />
|
||||
android:title="@string/nav_account" />
|
||||
|
||||
</menu>
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 11 KiB |
@ -7,19 +7,19 @@
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_home"
|
||||
android:name="com.yuxihan.sdu.ui.grow.GrowFragment"
|
||||
android:name="com.yuxihan.sdu.ui.home.HomeFragment"
|
||||
android:label="@string/title_home"
|
||||
tools:layout="@layout/fragment_home" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_grow"
|
||||
android:name="com.yuxihan.sdu.ui.grow.GrowFragment"
|
||||
android:label="@string/title_dashboard"
|
||||
tools:layout="@layout/fragment_grow" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_dashboard"
|
||||
android:name="com.yuxihan.sdu.ui.vaccine.VaccineFragment"
|
||||
android:label="@string/title_dashboard"
|
||||
tools:layout="@layout/fragment_vaccine" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/navigation_notifications"
|
||||
android:id="@+id/navigation_account"
|
||||
android:name="com.yuxihan.sdu.ui.account.AccountFragment"
|
||||
android:label="@string/title_notifications"
|
||||
android:label="@string/nav_account"
|
||||
tools:layout="@layout/fragment_account" />
|
||||
</navigation>
|
||||
|
@ -11,9 +11,9 @@
|
||||
<string name="login_failed">"登录失败"</string>
|
||||
<string name="detail_text">2019年3月,Gradle开启了在中国地区的CDN,下载Gradle的distribution已经不需要翻墙。\n 修改gradle文件夹下面的gradle-wrapper.properties中的http://services.gradle.org为http://downloads.gradle-dn.com即可。\n 2019年3月,Gradle开启了在中国地区的CDN,下载Gradle的distribution已经不需要翻墙。\n 修改gradle文件夹下面的gradle-wrapper.properties中的http://services.gradle.org为http://downloads.gradle-dn.com即可。\n 2019年3月,Gradle开启了在中国地区的CDN,下载Gradle的distribution已经不需要翻墙。\n 修改gradle文件夹下面的gradle-wrapper.properties中的http://services.gradle.org为http://downloads.gradle-dn.com即可。\n 2019年3月,Gradle开启了在中国地区的CDN,下载Gradle的distribution已经不需要翻墙。\n 修改gradle文件夹下面的gradle-wrapper.properties中的http://services.gradle.org为http://downloads.gradle-dn.com即可。\n </string>
|
||||
<string name="yuxi">雨曦</string>
|
||||
<string name="grow_record">成长</string>
|
||||
<string name="account_info">账号</string>
|
||||
<string name="vaccine_plan">疫苗</string>
|
||||
<string name="nav_home">家庭</string>
|
||||
<string name="nav_account">账号</string>
|
||||
<string name="nav_grow">成长</string>
|
||||
<string name="title_activity_main2">Main2Activity</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_dashboard">Dashboard</string>
|
||||
@ -21,6 +21,7 @@
|
||||
<string name="sign_out">注销登录</string>
|
||||
<string name="account_show">账号:%1$s</string>
|
||||
<string name="info_edit">资料编辑</string>
|
||||
<string name="grow_record_detail">成长记录详情</string>
|
||||
<string name="head_icon">头像</string>
|
||||
<string name="nick_name">昵称</string>
|
||||
<string name="account_id">账号</string>
|
||||
|
Loading…
Reference in New Issue
Block a user