這篇文章主要介紹了Android Studio preview中不固定及常見(jiàn)問(wèn)題的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司主要業(yè)務(wù)有網(wǎng)站營(yíng)銷(xiāo)策劃、網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、成都小程序開(kāi)發(fā)、H5頁(yè)面制作、程序開(kāi)發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開(kāi)展業(yè)務(wù)的過(guò)程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、成都全網(wǎng)營(yíng)銷(xiāo)推廣資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。
Android Studio提供了一個(gè)強(qiáng)大的“Preview”工具,可以幫助您預(yù)覽您的布局文件將如何在用戶的設(shè)備上呈現(xiàn)。XML布局可能是Android開(kāi)發(fā)中最常用的資源。 您的項(xiàng)目中每個(gè)活動(dòng)至少有一個(gè)布局文件。 Android Studio的預(yù)覽工具可幫助您實(shí)現(xiàn)這些偉大的設(shè)計(jì),并快速迭代它們,甚至不需要運(yùn)行您的應(yīng)用程序。它還允許您查看布局的不同配置,例如在縱向或橫向時(shí)的外觀,或者TextView在多個(gè)語(yǔ)言環(huán)境(如英語(yǔ),德語(yǔ)或希臘語(yǔ))上的外觀。
即使預(yù)覽工具是強(qiáng)大的,可以使你的發(fā)展日子輕而易舉,與此同時(shí),它也有一些缺點(diǎn)會(huì)讓程序猿抓狂。這篇文章談?wù)揚(yáng)review的常見(jiàn)問(wèn)題和技巧。
前陣子用 AndroidStudio,不知道點(diǎn)錯(cuò)了什么按鈕,preview 視圖窗口不是固定在一側(cè)。只要點(diǎn)擊 xml 界面,就隱藏了 preview 窗口,根本開(kāi)發(fā)不了。找來(lái)找去,發(fā)現(xiàn)設(shè)置處沒(méi)有docked mode屬性。

沒(méi)有 docked mode 屬性
網(wǎng)上找了很多資料,才解決了。辦法如下:
點(diǎn)擊preview,顯示視圖窗口;
點(diǎn)擊菜單欄的window;
選中Active Tool Window;
選中Docked Mode;

操作
這里是最常見(jiàn)的關(guān)于Preview的問(wèn)題列表和解決方案(圖片請(qǐng)右鍵用新標(biāo)簽放大查看):
問(wèn)題1:Preview看起來(lái)為空
假設(shè)你有一個(gè)布局,其內(nèi)容將從后端獲得的數(shù)據(jù)填充…你很快意識(shí)到,由于內(nèi)容是動(dòng)態(tài)的,預(yù)覽工具不能填充屏幕,你什么也看不到。對(duì)這個(gè)問(wèn)題的一個(gè)較為簡(jiǎn)單解決方案是在真機(jī)上測(cè)試,那時(shí)你有這些數(shù)據(jù),但是這樣Preview的意義就失去了。

在這種情況下的問(wèn)題是TextView和ImageView沒(méi)有任何內(nèi)容可供顯示。 這是處理動(dòng)態(tài)內(nèi)容時(shí)的常見(jiàn)問(wèn)題。即使代碼編譯沒(méi)有問(wèn)題,沒(méi)有人可以在不查看XML代碼的情況下理解該布局。
當(dāng)創(chuàng)建使用任何后端數(shù)據(jù)相關(guān)視圖的布局時(shí),一個(gè)好的做法是僅在預(yù)覽時(shí)填充它。通過(guò)使用tools命名空間而不是android來(lái)聲明xml屬性,這將允許您指定只在預(yù)覽時(shí)使用的屬性。例如我們使用tools:text =“Title”和tools:src =“@ drawable / cool_pic”,大功告成!
使用tools前綴聲明的屬性完全與android一樣,但僅用于預(yù)覽。使用tools:text 而不是Android:text,保證了你所有的內(nèi)容都只是在預(yù)覽的時(shí)候會(huì)出現(xiàn),程序運(yùn)行起來(lái)不會(huì)出現(xiàn)所有tools相關(guān)的東西。
如果你沒(méi)有足夠的符合所有ImageView要求的寬高比的圖片(jpg等),會(huì)發(fā)生什么? 您可以讓設(shè)計(jì)獅提供一些資源來(lái)測(cè)試各種適配,不過(guò)這可能需要一些額外的努力和維護(hù);這時(shí)也可以使用tools:rcs或者tools:layout_height和tools:layout_width來(lái)測(cè)試顯示效果,而不必修改真實(shí)屬性。
問(wèn)題2:測(cè)試最大寬高
或者當(dāng)您的布局旨在顯示來(lái)自外部源的一些內(nèi)容時(shí),它有時(shí)被要求具有一些最大寬度或/和高度(也就是使用了maxHeight屬性),來(lái)確保您的布局看起來(lái)美觀,即使外部源發(fā)送大于預(yù)期或某些寬高比未被同意的圖像。這時(shí)可以使用tools:layout_height和tools:layout_width,并且設(shè)置一個(gè)固定顏色的toos:background來(lái)預(yù)覽各個(gè)尺寸下的圖片可以在ImageView中占用的空間。

問(wèn)題3:修復(fù)損壞的預(yù)覽
如下圖所示的錯(cuò)誤經(jīng)常發(fā)生:創(chuàng)建自定義View時(shí),務(wù)必確保您的視圖可以實(shí)例化,而不使用任何在預(yù)覽期間可能不存在的外部依賴(lài)項(xiàng)。請(qǐng)記住,預(yù)覽不會(huì)在應(yīng)用程序中運(yùn)行,而是在IDE中的JVM上運(yùn)行。 這將模擬在Android設(shè)備上的工作原理,你應(yīng)該假設(shè)你不能訪問(wèn)任何數(shù)量的不在View框架內(nèi)的依賴(lài)。使用例如Glide的圖像加載器將是不可能的。 出于同樣的原因,任何依賴(lài)注入框架將不工作,因?yàn)樗粫?huì)在預(yù)覽上下文中初始化,導(dǎo)致視圖在被擴(kuò)充時(shí)拋出異常。

在這種情況下可以使用View.isInEditMode()。 使用它來(lái)檢查您是否是正在預(yù)覽,并跳過(guò)在Preview時(shí)不可用的依賴(lài):
public ImageWithCaptionView(Context context, AttributeSet attrs) {
super(context, attrs);
if (!isInEditMode()) {
ArticlesApplication.getInjector().inject(this);
}
}問(wèn)題4:merge布局重疊
merge標(biāo)簽可以幫助您減少布局代碼的重復(fù)。
然而,merge的問(wèn)題是,它內(nèi)部的所有組件將被折疊在一起,同時(shí)顯示在預(yù)覽里,造成視覺(jué)混亂。如下圖所示,TextView覆蓋在ImageView的上面:

您可以使用工具:tools:showIn=”layout”來(lái)顯示使用它的一些其他現(xiàn)有布局內(nèi)的布局的內(nèi)容。 請(qǐng)注意,如果您在多個(gè)地方使用不同的父布局,則只能選擇一個(gè)布局進(jìn)行預(yù)覽。
從Android Studio 2.2開(kāi)始,您現(xiàn)在可以使用工具:parentTag =“LinearLayout”例如將渲染布局為L(zhǎng)inearLayout。下圖是使用后的效果,不再有重疊:

問(wèn)題5:在預(yù)覽時(shí)顯示隱藏的視圖
你的活動(dòng)可能包含一些在onCreat時(shí)需要隱藏的View,但在一些事件后顯示它們。通過(guò)設(shè)置這些視圖在布局中的visibility:”GONE”,可以確保它們永遠(yuǎn)不會(huì)在預(yù)覽時(shí)可見(jiàn)。
問(wèn)題是,這些視圖將從預(yù)覽中消失,如果一些其他開(kāi)發(fā)人員打開(kāi)布局,并在預(yù)覽中查找它們,他們將無(wú)法找到它。這是一個(gè)問(wèn)題,因?yàn)樗枰嗟木蜁r(shí)間來(lái)了解屏幕上發(fā)生了什么。
您可以使用tools:visibility =“visible”屬性,以僅在預(yù)覽面板中顯示它。
問(wèn)題6:ListView的Item和Header/Footer預(yù)覽
使用tools:listitem / tools:listheader / tools:listfooter可以實(shí)現(xiàn)在預(yù)覽中增加item、header、footer的效果。例如:
<ListView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" tools:listitem="@layout/sample_list_item" tools:listheader="@layout/sample_list_header" tools:listitem="@layout/sample_list_footer" />
此特性在AS2.2有bug(無(wú)效),并在2.3中修復(fù)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Android Studio preview中不固定及常見(jiàn)問(wèn)題的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
分享題目:AndroidStudiopreview中不固定及常見(jiàn)問(wèn)題的示例分析
網(wǎng)址分享:http://chinadenli.net/article14/ppcode.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、網(wǎng)站營(yíng)銷(xiāo)、商城網(wǎng)站、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)