我一直在玩L預覽幾天,而有一件看起來不起作用的是視圖的android:elevation
屬性。當調用時它工作得很好,但它似乎忽略了XML屬性。我正在使用Android Studio 0.8.2,並將minSdkVersion
和targetSdkVersion
設置爲'L'
,將compileSdkVersion
設置爲'android-L'
。 buildToolsVersion
是"20.0.0"
。下面是一個簡單的佈局,不能正常工作:android:仰角在L預覽中不起作用
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_margin="10dp"
android:elevation="5dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="top"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_margin="10dp"
android:elevation="0dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bottom"/>
</android.support.v7.widget.CardView>
</LinearLayout>
下面是結果的截圖:imgur.com/mqeq9vK
按照android:elevation
我設置,底部的卡應該是平「地面」,但事實並非如此。事實上,看起來和頂級牌是5dp
沒什麼兩樣。這是一個已知的問題,它是否適合你?
編輯:這似乎只是與CardView
,或者至少它不是與Buttons
問題。在這個佈局中,我用Button
替換CardView
,即使陰影有點被搞砸(已知的bug),仍然可以看到高程的差異。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:elevation="2dp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:elevation="1dp"/>
</LinearLayout>
編輯2:這幾乎是確認此問題僅影響CardView
,android:elevation
任何其他視圖正常工作。有關發生這種情況的詳細解釋請看公認的答案。同時,我的解決方法是用FrameLayout
替換CardView
,並將android:background
設置爲drawable。這是一個卡的背景繪製的作品的例子:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#fff" />
</shape>
我也提起這個bug,所以請明星這個問題,如果它影響到你。 https://code.google.com/p/android-developer-preview/issues/detail?id=731
謝謝你的代碼,這證實了我懷疑的。我將提交該錯誤,同時我將制定一個不同的方法。 – IvonLiu
@alanv你知道現在棒棒糖是否正式退出,這是否仍然是一個錯誤?我仍然無法讓它在XML中工作。 – KickingLettuce
您應該使用cardElevation屬性(如yigit的另一個答案中所述,CardView的開發人員)。 – alanv