[問題] Fragment 畫面重疊

看板AndroidDev作者 (原來我是憤怒的鄉民)時間10年前 (2015/04/14 00:37), 編輯推噓1(1016)
留言17則, 4人參與, 最新討論串1/1
圖片1 http://ppt.cc/lJV2 圖片2 http://ppt.cc/WAxG 圖片3 http://ppt.cc/r6G7 程式碼下載位置 https://www.dropbox.com/s/xjjnrtqu6m6qbcj/iParking3.zip?dl=0 程式碼網站上的位置 http://codepad.org/e3nOwob0 Layout的網址 http://pastebin.com/JHW9uLjF 1、MainActivity FramLayout 2、webView Layout 3、Test1 Layout 4、Test2 Layout 原本我是想MainActivity連Test1 Layout,再連Test2 Layout,再連WebView Layout 然後按返回鍵是希望,WebView Layout 返回的是Test1 Layout,中間不連Test2 Layout 因此,在Test2 Layout的程式沒加上addToBackStack(null) 但不管如何,返回鍵都會有畫面重疊,有查到網路上有人說,覆寫 @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub //super.onSaveInstanceState(outState); } 把super.onSave....註解起來 但顯然仍是沒用 請教高手,這該如此解決呢。 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.74.226 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1428943072.A.20E.html

04/14 07:09, , 1F
從a到b頁,把a頁面a.finish掉。
04/14 07:09, 1F

04/14 07:10, , 2F
back的話,有事件可以控制。按下back指定startacitivy就可
04/14 07:10, 2F

04/14 07:10, , 3F
04/14 07:10, 3F

04/14 08:49, , 4F
樓上,不好意思,fragment沒finish
04/14 08:49, 4F

04/14 08:54, , 5F
請問在onBackPressed()下如何startActivity,另外我這
04/14 08:54, 5F

04/14 08:55, , 6F
個是Fragment,不是Activity
04/14 08:55, 6F

04/14 09:20, , 7F
單純只是不要看起來重疊的話,把fragment的layout加上背景
04/14 09:20, 7F

04/14 09:56, , 8F
但是根本的原因在於你transaction的內容
04/14 09:56, 8F

04/14 09:58, , 9F
依你的程式碼,到Web那步的時候backstack上是
04/14 09:58, 9F

04/14 09:59, , 10F
[remove 無、add 1] [remove 1、add 2]
04/14 09:59, 10F

04/14 10:04, , 11F
[remove 2、add web]這步沒有加到backstack
04/14 10:04, 11F

04/14 10:04, , 12F
所以第一次back的時候是pop [remove 1、add 2]這步,也就是
04/14 10:04, 12F

04/14 10:05, , 13F
執行remove 2、add 1,而web還留著,所以變成同時有1和web
04/14 10:05, 13F

04/14 10:06, , 14F
只是要看起來不是重疊=>把fragment設成gone XDD
04/14 10:06, 14F

04/14 10:15, , 15F
要達成跟activity按back一樣的效果,你要在backstack上加上
04/14 10:15, 15F

04/14 10:16, , 16F
[remove 1、add web],而fragment 2要手動在離開時做remove
04/14 10:16, 16F

04/14 10:17, , 17F
我是覺得比起backstack,自己用show、hide來控制比較快啦
04/14 10:17, 17F
文章代碼(AID): #1LA_3W8E (AndroidDev)