android橫豎屏切換不重啟activity解決方案
更新時(shí)間:2012年11月28日 14:18:00 作者:
部分網(wǎng)友會(huì)發(fā)現(xiàn)Activity在切換到后臺(tái)或布局從橫屏LANDSCAPE切換到PORTRAIT,會(huì)重新切換Activity會(huì)觸發(fā)一次onCreate方法,使用其他的方法同樣可以實(shí)現(xiàn)
部分網(wǎng)友會(huì)發(fā)現(xiàn)Activity在切換到后臺(tái)或布局從橫屏LANDSCAPE切換到PORTRAIT,會(huì)重新切換Activity會(huì)觸發(fā)一次onCreate方法,我們可以在androidmanifest.xml中的activit元素加入這個(gè)屬性Android:configChanges="orientation|keyboardHidden" 即可,比如
<activity android:name=".android123" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name">
Java代碼
/* 聲明Display對(duì)象,以取得屏幕寬高 */
final Display defaultDisplay = getWindow().getWindowManager()
.getDefaultDisplay();
intScreenH = defaultDisplay.getHeight();
intScreenW = defaultDisplay.getWidth();
/* 如果為L(zhǎng)andscape */
if (intScreenW > intScreenH)
{
/* Landscape => Portrait */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else
{
/* Portrait => Landscape */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
/* 聲明Display對(duì)象,以取得屏幕寬高 */
final Display defaultDisplay = getWindow().getWindowManager()
.getDefaultDisplay();
intScreenH = defaultDisplay.getHeight();
intScreenW = defaultDisplay.getWidth();
/* 如果為L(zhǎng)andscape */
if (intScreenW > intScreenH)
{
/* Landscape => Portrait */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else
{
/* Portrait => Landscape */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
同時(shí)在Activity的Java文件中重載onConfigurationChanged(Configuration newConfig)這個(gè)方法,這樣就不會(huì)在布局切換或窗口切換時(shí)重載onCreate等方法。代碼如下:
Java代碼
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}
<activity android:name=".android123" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name">
Java代碼
復(fù)制代碼 代碼如下:
/* 聲明Display對(duì)象,以取得屏幕寬高 */
final Display defaultDisplay = getWindow().getWindowManager()
.getDefaultDisplay();
intScreenH = defaultDisplay.getHeight();
intScreenW = defaultDisplay.getWidth();
/* 如果為L(zhǎng)andscape */
if (intScreenW > intScreenH)
{
/* Landscape => Portrait */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else
{
/* Portrait => Landscape */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
/* 聲明Display對(duì)象,以取得屏幕寬高 */
final Display defaultDisplay = getWindow().getWindowManager()
.getDefaultDisplay();
intScreenH = defaultDisplay.getHeight();
intScreenW = defaultDisplay.getWidth();
/* 如果為L(zhǎng)andscape */
if (intScreenW > intScreenH)
{
/* Landscape => Portrait */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} else
{
/* Portrait => Landscape */
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
同時(shí)在Activity的Java文件中重載onConfigurationChanged(Configuration newConfig)這個(gè)方法,這樣就不會(huì)在布局切換或窗口切換時(shí)重載onCreate等方法。代碼如下:
Java代碼
復(fù)制代碼 代碼如下:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}
您可能感興趣的文章:
- android橫豎屏切換時(shí)候Activity的生命周期
- android實(shí)現(xiàn)在橫豎屏切換時(shí)頁(yè)面信息不被重置的示例分享
- Android Activity 橫豎屏切換的生命周期
- 解析Android橫豎屏切換的問(wèn)題
- Android橫豎屏幕切換小結(jié)
- Android編程實(shí)現(xiàn)橫豎屏切換時(shí)不銷(xiāo)毀當(dāng)前activity和鎖定屏幕的方法
- android中Activity橫豎屏切換的那些事
- 解決Android橫豎屏切換數(shù)據(jù)丟失問(wèn)題的方法
- Android實(shí)現(xiàn)橫豎屏切換的實(shí)例代碼
- Android橫豎屏切換及其對(duì)應(yīng)布局加載問(wèn)題詳解
相關(guān)文章
Android?Flutter實(shí)現(xiàn)精靈圖的使用詳解
在游戲開(kāi)發(fā)中,精靈圖會(huì)將一個(gè)人物所有動(dòng)作放置在一張圖片中,通過(guò)坐標(biāo)定位選取其中一張圖展示。本文就來(lái)教你如何使用精靈圖,感興趣的可以了解一下2022-08-08
android使用PullToRefresh實(shí)現(xiàn)下拉刷新和上拉加載
本篇文章主要介紹了android使用PullToRefresh實(shí)現(xiàn)下拉刷新和上拉加載,具有一定的參考價(jià)值,有興趣的可以了解一下。2016-12-12
ViewPager的setOnPageChangeListener方法詳解
這篇文章主要介紹了ViewPager的setOnPageChangeListener方法詳解,非常不錯(cuò),具有參考解決借鑒價(jià)值,需要的朋友可以參考下2016-12-12
Android 仿微博的點(diǎn)贊功能的實(shí)現(xiàn)原理(持續(xù)點(diǎn)贊再取消)
經(jīng)常玩微博的同志都知道,微博的持續(xù)點(diǎn)贊再取消功能,下面小編給大家?guī)?lái)了Android 仿微博的點(diǎn)贊功能的實(shí)現(xiàn)原理(持續(xù)點(diǎn)贊再取消),感興趣的朋友跟隨腳本之家小編一起看看吧2018-03-03
Android使用第三方服務(wù)器Bmob實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼
這篇文章主要介紹了Android使用第三方服務(wù)器Bmob實(shí)現(xiàn)發(fā)送短信驗(yàn)證碼的思路詳解,需要的朋友可以參考下2016-09-09
a2sd+狀態(tài)下應(yīng)用程序丟失的解決方法詳細(xì)解析
用了a2sd+和SD分區(qū)方案的朋友可能會(huì)遇到突然某次開(kāi)機(jī)之后,a2sd+失效,同時(shí)發(fā)生丟失若干應(yīng)用程序的現(xiàn)象或者安裝軟件提示空間不足2013-09-09
Android自定義View之組合控件實(shí)現(xiàn)類(lèi)似電商app頂部欄
這篇文章主要為大家詳細(xì)介紹了Android自定義View之組合控件,實(shí)現(xiàn)類(lèi)似電商app頂部欄的相關(guān)資料,具有參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05

