2017-01-05 5 views
0

mein Name ist Josh. Ich versuche, das folgende Layout in Android zu erreichen, aber ich kann nicht scheinen, das innere Layout zu teilen, um das Layout zu bekommen, das ich will. Kann mir bitte jemand helfen.So erreichen Sie dieses Layout in Android (Studio)

Dies ist, was ich bisher:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    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.example.firstapplication.myapplication.MainActivity"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/imageView" /> 

    </LinearLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 

     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textPersonName" 
      android:text="Name" 
      android:ems="10" 
      android:id="@+id/editText" /> 
    </LinearLayout> 
</RelativeLayout> 

Das einzige Problem, das ich habe, ist, dass ich nicht herausfinden kann, wie man das Layout spalten, wie im Bild gezeigt.

Antwort

0

Sie können diese verschiedenen Möglichkeiten lösen. Ich kenne die Anforderung für Ihr Layout nicht, aber Sie brauchen wirklich nicht zwei LinearLayout, um dies zu lösen. Aber mit dem, was haben Sie zur Zeit alles, was Sie tun müssen, ist Ihre erste LinearLayout eine ID geben, und stellen Sie die Höhe wrap_content wie so:

<LinearLayout 
     android:id="@+id/LL1" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 

dann in Ihrem zweiten Layout setzen die Positionierung unter den ersten sein , setze die Höhe auf wrap_content und entferne layout_alignParentTop sonst überschneidet sich dein zweites Layout mit dem ersten. So haben Sie so etwas wie dies für die zweite:

<LinearLayout 
     android:layout_below="@id/LL1" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true"> 

Dies wird das zweite Layout unterhalb der ersten setzen, aber die Schlichte variieren, wenn das erste Layout immer eine konstante Höhe.

Wenn Sie wissen, dass Sie unabhängig von der ersten Layouthöhe immer ein Verhältnis von 70:30 wünschen, können Sie stattdessen layout_weights verwenden. Ich kann das hinzufügen, wenn Sie das stattdessen suchen.

ein konstantes Verhältnis aufweisen, Ihr Wurzel Layout ändern LinearLayout anstelle von RelativeLayout dann gesetzt, die Orientierung zu sein, und einem vertikalen weightSum auf 1

Dann setzen die ersten LinearLayout einen layout_weight von 0,7 zu ​​sein und zweite LinearLayout zu einem layout_weight von 0,3. Gefällt mir:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:weightSum="1" 
    android:orientation="vertical"> 

<LinearLayout 
     android:id="@+id/LL1" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.7"></LinearLayout> 

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.3"></LinearLayout> 


</LinearLayout> 
+0

Hallo, ja ich suche nach einem 70:30/80:20 Verhältnis für die 2 Layouts –

+0

@JoshDeo, schau dir den zweiten Teil meiner Antwort an. – Pztar

+0

Ja, das ist was ich will, ein Problem, wenn ich einen EditText in Layout 2 einfüge, geht es entweder über das Layout oder drinnen und streckt das Layout. Ist es möglich, den Edittext auf volle Breite und Höhe des Layouts zu setzen, aber das Gewicht ohne Dehnung auf 0.3 zu belassen, –

0

Stellen Sie die Höhenparameter des LinearLayouts entsprechend ein, um das gewünschte Verhältnis zwischen zwei Layouts zu erzielen.

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="**XYZ dp**" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 
+0

Hallo, bitte korrigiere mich wenn ich falsch liege meinst du sowas wie android: layout_height = "100 dp". Wäre das nicht hart codieren? –

+0

Ja, würde es. Sie brauchen Ihre Höhe, um dynamisch zu sein? Das wusste ich nicht. Aber wenn du es immer so haben willst, ist es in Ordnung, wenn es hart codiert ist. –

Verwandte Themen