2015-06-09 17 views
10

Ich habe zwei Ansichten mit der gleichen Höhe nebeneinander. Mein gewolltes Verhalten ist, dass sie keinen Schatten über einander werfen werden, da sie die gleiche Höhe haben, was jedoch passiert ist, dass die Ansicht auf der linken Seite einen Schatten auf der rechten Seite wirft. Sie haben nicht die gleiche Größe, daher kann ich sie nicht beide in eine andere Ansicht einfügen und eine Erhöhung auf diese Ansicht anwenden.Android - zwei Ansichten mit gleicher Ansicht nebeneinander

Ist dies das erwartete Verhalten? Gibt es einen Weg dahin?

Edit:

ich nur mit einfacheren Ansichten neu erstellt, hier ist der Code. Ich habe auch bemerkt, dass es das erwartete Verhalten hat, wenn ich die Ansicht direkt im Layout habe und sie nicht so einbeziehe, wie ich es in diesem Beispiel getan habe und wie es funktioniert.

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" 
    android:background="@android:color/holo_green_dark"> 

    <LinearLayout 
     android:layout_width="200dp" 
     android:layout_height="200dp" 
     android:background="@android:color/holo_red_dark" 
     android:elevation="24dp"/> 

    <include layout="@layout/test"/> 

</LinearLayout> 

Und hier ist die umfassen:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <LinearLayout 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:background="@android:color/holo_red_dark" 
     android:elevation="24dp"/> 

</LinearLayout> 

Und den Screenshot:

http://i.imgur.com/bhm1nbI.png

+0

Möglicherweise möchten Sie einen Screenshot des Effekts erfassen, die Sie sehen, , lade es irgendwo hoch und verlinke es mit deiner Frage, zusammen mit dem Layout, das du verwendest. – CommonsWare

+0

Sorry für die Verzögerung, ich habe das Problem nur mit einer einfacheren Ansicht neu erstellt. Es funktioniert, wenn ich die Ansicht nicht einschließe, aber so verwende ich die Ansicht in meinem ursprünglichen Problem. –

+2

Wenn Sie sagen, dass '' Ihr Problem ist, dann vermute ich, dass die Lösung ist, die '' zu vermeiden. Zum Beispiel können Sie vielleicht eine benutzerdefinierte "View"/"ViewGroup" mit Ihren beiden Ansichten erstellen. – CommonsWare

Antwort

1

die Hierarchie sehen Sie haben:

enter image description here

Sie haben also Elevation auf 1 und 3 angewendet, die keine Geschwister sind. Wenn eine Ansicht in der Hierarchie höher ist, sollte sie offensichtlich einen Schatten werfen, unabhängig davon, ob diese Ansichten die gleiche Höhe haben oder nicht.

Hatten Sie Erhebung auf 2 statt 3 angewendet würden Sie nicht sehen Effekt Schatten.

Also, wenn Sie nur Ihre ändern test.xml dazu:

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:elevation="24dp"> 

    <LinearLayout 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:background="@android:color/holo_red_dark"/> 

</LinearLayout> 

Sie diese Ausgabe erhalten würde:

enter image description here

Verwandte Themen