2014-11-25 25 views
12

5 Android'de bir hataya benziyor (API 21). Düğmeyle ilgili bir metin gösterimine ihtiyacım var, metin görünümü düğmenin üstüne yerleştirilmelidir. Android 4.1 (API 16) ve 5 Android'de (API 21) yanlış çalışır. Ekran ve kod vardır:Textview on (yukarıdaki) Düğme, Android 5'de çalışmaz (API 21)

Android 4.1 - Bu doğrudur, düğmesinin üzerinde kırmızı TextView'un

Android 4.1

Android 5 - bu yanlış, düğme altında kırmızı TextView'un olduğunu!

Android 5

Kodu:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/rlBottom" 
android:layout_width="fill_parent" 
android:layout_height="match_parent" > 



<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:background="#00FF00"> 

    <Button 
     android:id="@+id/bVio" 
     android:layout_width="wrap_content" 
     android:layout_height="50dip" 
     android:text="VIO"></Button> 

    <TextView 
     android:id="@+id/bVio_count" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="00" 
     android:textSize="12dip" 
     android:textColor="#FFFFFF" 
     android:background="@drawable/rounded_textbox"/> 

    </FrameLayout> 

</RelativeLayout> 

rounded_textbox - arka planı kaldırmak ise, yalnızca ... şekillendirmeye edilir hepsi aynı görünüyor, 5 android içinde düğme altında TextView'un.

Lütfen tavsiye!

+0

başka ekran görüntüsü API 20 ve API 21'dir - Yani hata 5 –

+0

[bringToFront()] (http olmak Onların görünüyor Android'de yalnızca geçerli: Yani doğru kod şudur: Bir 'Görünüm 'için //developer.android.com/reference/android/view/View.html#bringToFront()). Deneyebilirsin. –

+0

da çalışmıyor, denedim. –

cevap

25

Evet. Android L'de büyük bir chnage (API 21). Yeni bir şey var - Yükseklik, HTML'de z-endeksi gibi bir şey. Yani bu hatayı düzeltmek için android kullanmalısınız: yükseklik = "100dp" VEYA android: translationZ = "100dip" üstte olması gereken görünüm. http://bit.ly/1xYcyuy burada

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/rlBottom" 
android:layout_width="fill_parent" 
android:layout_height="match_parent" > 



<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:background="#00FF00"> 

    <Button 
     android:id="@+id/bVio" 
     android:layout_width="wrap_content" 
     android:layout_height="50dip" 
     android:text="VIO"></Button> 

    <TextView 
     android:id="@+id/bVio_count" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="00" 
     android:textSize="12dip" 
     android:textColor="#FFFFFF" 
     android:background="@drawable/rounded_textbox" 
     android:elevation="100dp"/> 

    </FrameLayout> 

</RelativeLayout> 
+2

android: translationZ = "100dip" çalışmıyor ve yükseklik değeri "1dp" den daha büyük bir şey olabilir (ör. Android: elevation = "2dp"). – Deepti

+0

Yükseltme 2dp yapmak aptalca bir fikirdir, çünkü preslenmiş durum yüksekliğinden daha büyüktür, bu yüzden TextView dolgusu düğmenin altından geçer –