2017-01-10 4 views
0

레이어 위젯에 관한 거의 모든 기사에서 FrameLayouts가 발생합니다. FrameLayouts는 XML에서 발생 순서에 따라 스택해야합니다. 테스트를 위해 xml에 버튼과 TextView를 두어 TextView가 버튼과 겹쳐지기를 바랍니다. 버튼이 텍스트 뷰 앞이나 뒤에 놓여 있으면 상관 없습니다. 버튼은 항상 위에 있습니다. 누구든지 내가 뭘 잘못하고 있는지 알 수 있니?android : FrameLayout의 버튼 위에 textview 스택이없는 이유

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.jdot.testloadingfragments.MainActivity"> 

    <Button 
     android:id="@+id/btn_test" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginStart="10dp" 
     android:text="  " 
     /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:text="----------------------------------------------------------"/> 


</FrameLayout> 

답변

3

텍스트 뷰에 elevation을 추가하면 여기 Button

예컨대

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.jdot.testloadingfragments.MainActivity"> 

    <Button 
     android:id="@+id/btn_test" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginStart="10dp" 
     android:text="  "/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:elevation="2dp" 
     android:text="----------------------------------------------------------"/> 
</FrameLayout> 

더 많은 정보를 원하시면 위에 표시 할 것입니다 : Why is the framelayout not drawing z index correctly?

+0

감사에 대한

. 고도를 피하면서 Button이 특별한 경우인지 알지 못했습니다. AppCompat에는 일반적인 디자인 요소에 대해보다 최신 API 수준을 사용하도록하는 테마가 AppCompat에 있다는 것은 의미가 없습니다. –

0

FrameLayout이 이상적으로 단일 항목을 표시하는 데 사용됩니다.

프레임 레이아웃에 여러 하위보기를 표시하려면 각 자식과 android:layout_gravity 특성을 사용하여 겹치지 않고 올바르게 배치하고 서로 겹치는보기를 만들려면 고도를 사용하십시오. 더 많은 정보 방문 https://developer.android.com/reference/android/widget/FrameLayout.html

+0

고도에 대해 알고 있지만 내 앱을 API로 제한 할 수 없습니다. 21+ –

+0

** app : elevation ** 속성을 사용하여 해당 제한을 극복하시기 바랍니다. –

+0

감사합니다. 유용한 정보입니다. –