導航:首頁 > 操作系統 > androidfragment橫豎屏

androidfragment橫豎屏

發布時間:2022-07-23 02:40:08

android 怎樣讓fragment全屏

讓Fragment 所屬的Activity 全屏就可以了
Fragment 本身就是在Activity裡面存在的 後者是前者的容器容器全屏了 他自然也全屏了

一勞永逸的方法 在Manifest文件裡面的Aplication 裡面的那個theme
android:theme="@android:style/Theme.Black.NoTitleBar"
例如
<application
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar"
>

② 求助:fragment 在橫豎屏切換的時候崩潰

fragment若不在manifest里注冊橫豎屏切換變更通知,在切換時重新oncreateview就會崩潰,layout不能被inflate,提示說找不到,原因有誰知道嗎?

③ android 怎麼解決橫屏之後fragment重疊

Activity的創建會先調用OnCreat(),啟動OnStar(),然後顯示在界面上OnResume();未完全遮住Activity時調用OnPause(),如被DialogActivity遮住MainActivity;被完全遮住時調用OnStop(),停止Activity,當重新啟動時則調用OnRestart();Activity銷毀時就調用OnDestroy()。為什麼和大家扯這么久Activity的生命周期呢,我們的問題不是「Android橫屏開發的老梗---Fragment切換混亂重疊問題」嗎?好了,在切入正題之前再和大家說一個問題,當我們要把Activity從豎屏切換到橫屏時,Activity會被OnDestroy()銷毀掉,再重新創建。這就是我今晚寫這篇文章的主要原因了。
Android默認顯示是豎屏顯示的,所以我們先要設置它為橫屏顯示,有兩種方法:
第一種修改Activity的onResume方法
@Override
protected void onResume() {
/**
* 設置為橫屏
*/

④ 針對Android手機平板,橫豎屏如何做適配

Fragment

⑤ 為什麼切換橫豎屏時,Fragment被調用兩次

切換的時候會重新設置屏幕,activity會重新載入,所以會被調用,兩次可能是你代碼有問題

⑥ android中fragment中 怎麼切換豎屏

你參考下,要回答這個問題,我們要先討論一些開發者在Activity生命周期中使用長時間後台任務時遇到的共同困難。然後,我們將介紹常見的兩種能解決問題但有不好的方法。最後,我們會用一個示例代碼說明推薦的解決方案,它用retained fragment來達到我們的目標。

配置改變&後台線程(Configuration Changes & Background Tasks)

配置發生變化以及銷毀和重新創建穿越了整個Activity的生命周期,並且引出一個問題,那就是這些事件的發生是不可預測並且在任何時候都可能觸發。並發的後台線程只加劇了這個問題。假設在Activity中啟動了一個AsyncTask,然後用戶馬上旋轉屏幕,這會導致Activity被銷毀和重新創建。當AsyncTask最後完成它的任務,它會將結果反饋到舊的Activity實例,完全沒有意識到新的activity已經被創建了。似乎這不是一個問題,新的Activity實例又會讓浪費寶貴的資源重新啟動一個後台線程,而不知道舊的AsyncTask已經在運行。由於這些原因,在配置變化的時候我們需要正確、有效地保存在Activity實例的活動對象。

不好的實踐:保存整個Activity

可能最有效和最常被濫用的解決方法是通過在Android manifest中設置android:configChanges屬性禁止默認的銷毀和重新創建行為。這個簡單的方法使得它對開發者很有吸引力;然而Google的工程師建議不這么做。主要的擔憂是:配置後,需要你在代碼中手動處理設備的配置變化。處理配置變化需要你採取很多額外的處理,以確保每一個字元串、布局、繪圖、尺寸等與當前設備的配置一致。如果你不小心,那麼你的應用程序可能會有一系列與資源定製方面有關的Bug。

另一個Google不鼓勵使用它的原因是許多開發者錯誤地認為,設置android:configChanges = "orientation"(這只是舉例說明),會神奇地避免他們的Activity在不可預知的場景中被銷毀和重新創建。其實不是這樣的。有多種原因可能導致配置發生變化,而不單單是屏幕橫豎屏的變化。將你的手機中的內容顯示在顯示器上,更改默認語言,修改設備默認的字體縮放,這三個簡單的例子都有可能觸發設備的配置變化。這些事件會向系統發出信號,銷毀並重建所有正在運行的Activity,在它們下一次resume的時候。所以設置android:configChanges屬性一般不是好的做法。

已經被棄用的方法:重寫()

在Honeycomb發布前,跨越Activity實例傳遞活動對象的推薦方法是重寫()和()方法。使用這種方法,傳遞跨越Activity 實例的活動對象僅僅需要在()將活動對象返回,然後在()中取出。截止API 13,這些方法都已經被棄用,以支持更有效的Fragment的setRetainInstance(boolean)方法。它提供了一個更簡潔,更模塊化的方式在配置變化的時候保存對象。我們將在下一節討論以Fragment為基礎的方法。

推薦的方法:在Retained Fragment中管理對象

自從Android3.0推出Fragment。跨越Activity保留活動對象的推薦方法是在一個Retained Fragment中包裝和管理它們。默認情況下,但配置發生變化時,Fragment會隨著它們的宿主Activity被創建和銷毀。調用Fragment#setRetaininstance(true)允許我們跳過銷毀和重新創建的周期。指示系統保留當前的fragment實例,即使是在Activity被創新創建的時候。不難想到使用fragment持有像運行中的線程、AsyncTask、Socket等對象將有效地解決上面的問題。

⑦ Fragment如何實現左右分屏顯示的

1.在AndroidManifest裡面先把Activity設置成橫屏顯示
加粗這塊放進去即可,當然不設置也沒事哈
這句話:
android:screenOrientation=」landscape」
<activity android:name=".MainActivity" android:screenOrientation="landscape" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
2.再去寫布局啦
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.holly.mytest4"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:screenOrientation="landscape" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
再寫左側的fragment布局,取名:left_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment_container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:orientation="vertical" > <ListView android:id="@+id/lv1" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView></LinearLayout>
右側顯示詳情的fragment布局,取名right_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tv" android:text="測試字體" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:textSize="20sp" /></LinearLayout>

⑧ 當Android旋轉屏幕導致橫豎屏切換時,如何保存當前Fragment的實例

總結了以下幾種情況:

如果Fragment不包含WebView,只是簡單的UI View,像是TextView, Button, CheckBox, ImageView... 不建議使用setRetainInstance方法,只需要記住當前fragment的index,然後在設備旋轉後根據數據重新實例化一個fragment。因為不包含大量數據,旋轉的過程中幾乎可以用「無縫切換」來形容。
如果包含WebView還是採用針對WebView的方法(題主的情況)。所以要看情況而定。

⑨ Android fragment 中控制某一個界面全屏與否

這是我寫的博客裡面的代碼,可以參考如下,設置全屏與否:
/**
*
添加橫豎屏監聽,隱藏圖形的菜單控制項
*/
@Override
public
void
onConfigurationChanged(Configuration
newConfig)
{
super.onConfigurationChanged(newConfig);
if
(newConfig.orientation
==
Configuration.ORIENTATION_LANDSCAPE)
{
//
//
設置全屏
//
//
設置全屏
getActivity().getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
else
if
(newConfig.orientation
==
Configuration.ORIENTATION_PORTRAIT)
{
WindowManager.LayoutParams
attrs
=
getActivity().getWindow()
.getAttributes();
attrs.flags
&=
~WindowManager.LayoutParams.FLAG_FULLSCREEN;
getActivity().getWindow().setAttributes(attrs);
}
}

閱讀全文

與androidfragment橫豎屏相關的資料

熱點內容
一堆文件夾怎麼弄出來 瀏覽:743
博途如何編譯硬體 瀏覽:418
fortran程序pdf 瀏覽:504
電池消耗演算法 瀏覽:394
伺服器中斷連接怎麼處理 瀏覽:222
上世紀互聯網不發達程序員很難 瀏覽:841
語音識別android開源 瀏覽:762
地埋式垃圾壓縮中轉站 瀏覽:902
apachehttpdlinux 瀏覽:944
快遞員中通app預付款是什麼 瀏覽:843
java路徑轉義 瀏覽:857
keytool加密演算法 瀏覽:131
笑臉圖案的APP相機是什麼軟體 瀏覽:249
app軟體為什麼會被下架 瀏覽:980
從內存到硬碟的命令是 瀏覽:52
程序員的爸爸們的發型 瀏覽:123
魔獸世界傷害壓縮是怎麼壓的 瀏覽:976
壓縮機型號hp 瀏覽:958
配音虛弱的程序員 瀏覽:61
8歲小學生程序員編程 瀏覽:256