作者purin88 (原來我是憤怒的鄉民)
看板AndroidDev
標題[問題] Fragment 畫面重疊
時間Tue Apr 14 00:37:43 2015
圖片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://webptt.com/m.aspx?n=bbs/AndroidDev/M.1428943072.A.20E.html
1F:推 fake01: 從a到b頁,把a頁面a.finish掉。 04/14 07:09
2F:→ fake01: back的話,有事件可以控制。按下back指定startacitivy就可 04/14 07:10
3F:→ fake01: 以 04/14 07:10
4F:→ purin88: 樓上,不好意思,fragment沒finish 04/14 08:49
5F:→ purin88: 請問在onBackPressed()下如何startActivity,另外我這 04/14 08:54
6F:→ purin88: 個是Fragment,不是Activity 04/14 08:55
7F:→ ssccg: 單純只是不要看起來重疊的話,把fragment的layout加上背景 04/14 09:20
8F:→ ssccg: 但是根本的原因在於你transaction的內容 04/14 09:56
9F:→ ssccg: 依你的程式碼,到Web那步的時候backstack上是 04/14 09:58
10F:→ ssccg: [remove 無、add 1] [remove 1、add 2] 04/14 09:59
11F:→ ssccg: [remove 2、add web]這步沒有加到backstack 04/14 10:04
12F:→ ssccg: 所以第一次back的時候是pop [remove 1、add 2]這步,也就是 04/14 10:04
13F:→ ssccg: 執行remove 2、add 1,而web還留著,所以變成同時有1和web 04/14 10:05
14F:→ blackZ2: 只是要看起來不是重疊=>把fragment設成gone XDD 04/14 10:06
15F:→ ssccg: 要達成跟activity按back一樣的效果,你要在backstack上加上 04/14 10:15
16F:→ ssccg: [remove 1、add web],而fragment 2要手動在離開時做remove 04/14 10:16
17F:→ ssccg: 我是覺得比起backstack,自己用show、hide來控制比較快啦 04/14 10:17