平夕夕開發
效果圖
頁面
Dialog頁面
- 設定頁面標題
getActivity().setTitle(“設定標題”)
登錄
登錄處理:使用了LoginViewModel進行字符長度判斷,
通過過濾器進行傳值
fragment所在的activity都作用于一個activity中,一個intent對應可以對應多個fragment
- 通過startActivity來跳轉頁面
- 通過SDK中自帶的LoginActivity來寫登錄頁面 (要在SDK Manager -> SDK Tools 中安裝 emulator SDK )
- LoginActivity.java LoginViewModel.java
- 完美的解決了關于Android開發 中mysql使用遇到的問題!!!
- 登錄中的圖示 是drawableLeft
- 通過一個進度條跳轉到主頁
問題:
? 注意到ip地址的變化,會導致連接資料庫超時(一直卡在那里不動)
? 要將ip改為一個固定的ip地址
? 沒網路也會導致無法訪問到服務器資料庫
網路編程:具體實作
- 先通過呼叫api借口使用
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<String>() {
@Override
public void onSuccess(String result){
Log.i("CommentFragment", result);
list = JSON.parseObject(result,
new TypeReference<List<HashMap<String, Object>>>() {
});
mData.clear();
mData.addAll(list);
adapter.notifyDataSetChanged();
}
@Override
public void one rror(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"
首頁主要內容
頂部導航欄
- 1.搜索框
- 2.提交按鈕
中間內容頂部導航欄
-
不同類別的內容
-
通過點擊觸發切換
-
推薦
-
一個網格布局
-
一個橫向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,
-
-
-
食品
-
水果
- 通過recyclerView來進行嵌套gridlayout
- 一個單獨的xml檔案,recycler.xml
- 通過配接器的方式來進行配置
- 通過getData()去獲取到bind視圖系結的資料
-
百貨
-
手機
-
電腦
以上頁面:
? 公用一個內容來顯示資料
問題:
? Duplicate resources
- 名字相同的錯誤,修改名字
當加入輪播圖后,無法加載頁面
中間內容
-
資料庫中的資料 通過python爬蟲去爬取資料,并將資料等寫入python腳本中
-
自動操作資料庫
-
最終將資料庫上傳到自己搭建的服務器當中(阿里云服務器)
-
配置mysql操作檔案
- mysql的連接 資料庫名 和 表名要區分開來
- mysql中的用戶連接 服務器ip 要寫對 要訪問到資料
- 訪問資料問題
- 高版本無法訪問到資料(自己搭的服務器)
-
運用滾動條來查看商品資訊
-
瀑布流顯示所有商品
底部導航欄
實作
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.聊天
- 運用recycleview實作滑動效果顯示商家資訊
-
5.個人中心
- 實作
- 如果資料提交上去,但是資料庫沒有進行更新操作,需要檢查php中的資料庫撰寫的代碼是否正確,
- 資料庫機制:有一個錯誤的欄位,就所有欄位不提交,
整體布局:
? 通過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出現頂部空白
- 解決辦法,洗掉配置中的 android:fitsSystemWindows=“true”
解決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
? 解決方法:
- 底部導航條的實作
- bottom_menu.xml 檔案實作底部導航欄個單項
內容
Paging使用
網路+資料庫
DiffUtil -> pagedList Adapter -> onBindViewHolder -> pagedList ->DataSource
- mainfests 允許網路訪問
- 布局檔案
build.gradle
- 資料在UserViewModel
- Room
修改商品操作
-
通過點擊商品進入到商品詳情頁,通過點擊修改和洗掉來改變商品,
-
修改商品,先獲取到商品的基本資訊:名稱,描述,生產日期,圖片
-
問題:
- 修改圖片并進行保存,上傳到服務器中,出現問題
- 1.修改服務器的php代碼,將update.php中basename(xxx)回傳的檔案名與ip地址進行拼接操作
- 2.得到完整的圖片地址,進行寫入資料庫,將資料庫中picture的欄位大小設定大一些,防止寫入不完整,
- php中的字串拼接操作是使用字串連接符
.和賦值運算子.=
- 修改圖片并進行保存,上傳到服務器中,出現問題
-
解決成功
聊天頁面顯示
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的使用,出現移位問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/401676.html
標籤:其他
