效果图
Dialog页面
getActivity().setTitle(“设置标题”)
登录处理:使用了LoginViewModel进行字符长度判断。
通过过滤器进行传值
fragment所在的activity都作用于一个activity中,一个intent对应可以对应多个fragment
问题:
注意到ip地址的变化,会导致连接数据库超时(一直卡在那里不动)
要将ip改为一个固定的ip地址
没网络也会导致无法访问到服务器数据库
网络编程:具体实现
implementation 'org.xutils:xutils:3.3.40'
public void onCreate() {
super.onCreate();
x.Ext.init(this);
//x.Ext.setDebug(BuildConfig.DEBUG); // 是否输出debug日志, 开启debug会影响性能.
}
public String selectuser="http://39.108.61.227:80/json/su.php";
public void getData(){
RequestParams params = new RequestParams(url);
x.http().get(params,new Callback.CacheCallback() {
@Override
public void onSuccess(String result){
Log.i("CommentFragment", result);
list = JSON.parseObject(result,
new TypeReference>>() {
});
mData.clear();
mData.addAll(list);
adapter.notifyDataSetChanged();
}
@Override
public void onError(Throwable ex, boolean isOnCallback){
}
@Override
public void onCancelled(CancelledException cex){
}
@Override
public void onFinshed(){
}
@Override
public boolean onCache(String result){
return false;
}
});
}
评论页面:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e4WBFNqq-1641134602673)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20211212214609778.png)]
修改样式和主题顶部文字
通过getActivity().setTitle()修改内容
图片头像的形状,通过自定义的CircleImageView来改变,其中组件中的图片要通过src的形式添加。
android:src="@drawable/i3"
不同类别的内容
通过点击触发切换
推荐
一个网格布局
一个横向lineLayout
一个横向
一个瀑布流数据(实验10)
E/RecyclerView: No adapter attached; skipping layout
Log.i("RecycleViewFragment", result); //有解析数据 返回
list = JSON.parseObject(result,
new TypeReference<List<HashMap<String, Object>>>() {
});
出现数据转换问题,不返回值,也不继续往下执行
解决方法:坚持onBindViewHolder中所写代码的准确性
Glide.with(getActivity()).load(new MyApplication().imagebaseurl + mData.get(position).get("picture").toString()).placeholder(R.mipmap.ic_launcher).into(holder.img);
get(“picture”) 与 数据库中字段名对应 picture。
食品
水果
百货
手机
电脑
以上页面:
公用一个内容来显示数据
问题:
Duplicate resources
当加入轮播图后,无法加载页面
数据库中的数据 通过python爬虫去爬取数据,并将数据等写入python脚本中
自动操作数据库
最终将数据库上传到自己搭建的服务器当中(阿里云服务器)
配置mysql操作文件
运用滚动条来查看商品信息
瀑布流显示所有商品
MainActivity.java R.id.nav_host_fragment-- > activity_main.xml fragment
-> fragment (id为nav_host_fragment) -> navigation/mobile_navigation ->nav_home
-> fragment_home.xml -> BottomNavigationView bottom_nav_menu -> fragment_home.xml
fragment navigation/mobile_navigation2 -> mobile_navigation2.xml -> 页面导航fragment
1.首页
2.直播
通过下载 cn.jzvd:jiaozivideoplayer:7.7.0依赖实现播放视频
getItemCount() 返回值记得设置为mData.size()
3.分类
运用verticalTabLayout + YViewPager来实现侧边栏的效果
implementation 'q.rorbin:VerticalTabLayout:1.2.5'
4.聊天
5.个人中心
整体布局:
通过activity_main.xml进行布局,给一个容器(navigation)
容器中设置起始fragment,通过起始fragment设置viewpage来左右控制页面切换,
起始fragment中在设置底部导航栏,通过BottomNavigationView,在给一个容器来存放fragment
再在第二个容器中设置显示页面,这个页面就是一打开就看到的页面。就是viewpage页面
问题:
如果出现tablayout中tab中的button无法点击,多半是recycleviewfragment.xml文件布局的问题
通过对照viewpage.xml中的文件和recyclefragment.xml文件中的布局来改变。最终可以实现点击
(例如marin-top的高度等,不能让recycleviewfragment.xml文件中的嵌套在viewpage的tab上,或者遮挡住了tab的button)
底部导航栏的移位问题,出现有中文无法显示出来。
修改bottomnavigationview中的属性,
添加app:labelVisibilityMode=“labeled”
这样就显示全了文字信息
BottomNavigationView 的使用及遇到的坑 - 简书 (jianshu.com)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iz9eMwBM-1641134602676)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20211213174253966.png)]
CoordinatorLayout出现顶部空白
解决RecycleView底部内容被遮挡(bottomNavigationView)
Android跳过的那些坑:ConstraintLayout中,ViewPager与BottomNavigationView 遮挡 问题解决方案,增加三句话搞定_thtfcccj的博客-CSDN博客
生命周期 activity.xml -> graph.xml -> fragment_home.xml
Navigation 项目
activity.xml 中 navhostfragment nav_graph(id -> fragment容器 app:navGraph="@navigation/navigation")
HomeFragment home_fragment.xml Constrainlayout button
DetailFragment detail_fragment.xml Constrainlayout button
Navigation navigation (地图) 添加fragment graph
MainActivity.java
NavigationController navController = Navigation.findNavController(this,R.id.fragment);
NavigationUI.setupActionBarWithNavController(this,navController);
HomeFragment.java
NavigationController navController = Navigation.findNavController(this,R.id.button);
navController.navigate(R.id…)
ViewPager 不能同时在一个页面出现(为什么? )还没有解决
fragment跳转通过Intent通信跳转
activity不能直接跳到fragment
先通过一个activity再跳到fragment
改变为:
一个activity 对应 一个fragment
最终为:
两个activity ,在第二个activity中运用navigatie 去控制fragment,从home_fragement开始
无法实现底部导航栏的点击事件,所以最终改变了。与实验不同在于,实验是BottonNavigationView,而我的是LinerLayout,实现效果不一样
最终版为 5 个 activity对应 5 个fragment
并且在当前的fragment不能跳到属于自己的fragment
解决方法:
Paging使用
网络+数据库
DiffUtil -> pagedList Adapter -> onBindViewHolder -> pagedList ->DataSource
build.gradle
通过点击商品进入到商品详情页,通过点击修改和删除来改变商品。
修改商品,先获取到商品的基本信息:名称,描述,生产日期,图片
问题:
.
和赋值运算符.=
解决成功
Android问题:android.graphics.drawable.TransitionDrawable cannot be cast to android.graph
通过设置Glide.with(context).load(url).asBitmap().into(img);解决
关于recycleview滑动到底部不彻底
完美解决BottomNavigationView使用过程中遮盖其他控件无法显示的问题 - 简书 (jianshu.com)
如何优雅地使用BottomNavigationView实现底部导航栏+fragment切换效果 - 简书 (jianshu.com)
关于BottomNavigationView的使用,出现移位问题
able.TransitionDrawable cannot be cast to android.graph
通过设置Glide.with(context).load(url).asBitmap().into(img);解决
关于recycleview滑动到底部不彻底
完美解决BottomNavigationView使用过程中遮盖其他控件无法显示的问题 - 简书 (jianshu.com)
如何优雅地使用BottomNavigationView实现底部导航栏+fragment切换效果 - 简书 (jianshu.com)
关于BottomNavigationView的使用,出现移位问题