[問題] Fragment 畫面重疊

作者: purin88 (原來我是憤怒的鄉民)   2015-04-14 00:37:43
圖片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....註解起來
但顯然仍是沒用
請教高手,這該如此解決呢。
謝謝
作者: fake01 (假面超人)   2015-04-14 07:09:00
從a到b頁,把a頁面a.finish掉。back的話,有事件可以控制。按下back指定startacitivy就可以
作者: purin88 (原來我是憤怒的鄉民)   2015-04-14 08:49:00
樓上,不好意思,fragment沒finish請問在onBackPressed()下如何startActivity,另外我這個是Fragment,不是Activity
作者: ssccg (23)   2015-04-14 09:20:00
單純只是不要看起來重疊的話,把fragment的layout加上背景但是根本的原因在於你transaction的內容依你的程式碼,到Web那步的時候backstack上是[remove 無、add 1] [remove 1、add 2][remove 2、add web]這步沒有加到backstack所以第一次back的時候是pop [remove 1、add 2]這步,也就是執行remove 2、add 1,而web還留著,所以變成同時有1和web
作者: blackZ2   2015-04-14 10:06:00
只是要看起來不是重疊=>把fragment設成gone XDD
作者: ssccg (23)   2015-04-14 10:15:00
要達成跟activity按back一樣的效果,你要在backstack上加上[remove 1、add web],而fragment 2要手動在離開時做remove我是覺得比起backstack,自己用show、hide來控制比較快啦

Links booklink

Contact Us: admin [ a t ] ucptt.com