Ich habe den folgenden Code, wie mache ich es so, dass die 3 Tasten unten sind?
<TextView
Android:id="@+id/textView1"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="60dp"
Android:gravity="center"
Android:text="@string/observer"
Android:textAppearance="?android:attr/textAppearanceLarge"
tools:context=".asdf"
Android:weight="1" />
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical" >
<Button
Android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
Android:layout_width="145dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal|center"
Android:text="1" />
<Button
Android:id="@+id/button2"
style="?android:attr/buttonStyleSmall"
Android:layout_width="145dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal|center"
Android:text="2" />
<Button
Android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
Android:layout_width="145dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal|center"
Android:text="3" />
</LinearLayout>
Sie müssen vier Dinge sicherstellen:
LinearLayout
hat layout_height="match_parent"
LinearLayout
hat layout_weight="1"
und layout_height="0dp"
TextView
hat layout_weight="0"
LinearLayout: Android:gravity="center|bottom"
eingestellt.Beachten Sie, dass fill_parent
nicht "den gesamten verfügbaren Speicherplatz beanspruchen" bedeutet. Wenn Sie jedoch layout_height="0dp"
mit layout_weight="1"
verwenden, nimmt eine Ansicht den gesamten verfügbaren Speicherplatz in Anspruch ( Kann nicht das richtige Layout mit "fill_parent" ) erhalten.
Hier ist ein Code, den ich schnell geschrieben habe, der zwei LinearLayouts auf ähnliche Weise wie Ihr Code verwendet.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/db1_root"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical" >
<TextView
Android:id="@+id/textView1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:text="@string/cow"
Android:layout_weight="0"
Android:textAppearance="?android:attr/textAppearanceLarge" />
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="0dip"
Android:layout_weight="1"
Android:gravity="center|bottom"
Android:orientation="vertical" >
<Button
Android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
Android:layout_width="145dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal|center"
Android:text="1" />
<Button
Android:id="@+id/button2"
style="?android:attr/buttonStyleSmall"
Android:layout_width="145dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal|center"
Android:text="2" />
<Button
Android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
Android:layout_width="145dp"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal|center"
Android:text="3" />
</LinearLayout>
</LinearLayout>
Das Ergebnis sieht ungefähr so aus:
Sie können eine RelativeLayout
verwenden und sie mit Android:layout_alignParentBottom="true"
nach unten ausrichten.
Relatives Layout erstellen und innerhalb dieses Layouts die Schaltfläche mit dieser Zeile erstellen
Android:layout_alignParentBottom="true"
zuerst erstellen Sie die Datei mit dem Namen footer.xml
Fügen Sie diesen Code hinzu.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="78dp"
Android:layout_gravity="bottom"
Android:gravity="bottom"
Android:layout_weight=".15"
Android:orientation="horizontal"
Android:background="@drawable/actionbar_dark_background_tile" >
<ImageView
Android:id="@+id/lborder"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/overlay" />
<ImageView
Android:id="@+id/unknown"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/notcolor" />
<ImageView
Android:id="@+id/open"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/openit"
/>
<ImageView
Android:id="@+id/color"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/colored" />
<ImageView
Android:id="@+id/rborder"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/frames"
Android:layout_weight=".14" />
</LinearLayout>
erstellen Sie dann header.xml und geben Sie diesen Code ein:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="@dimen/action_bar_height"
Android:layout_gravity="top"
Android:baselineAligned="true"
Android:orientation="horizontal"
Android:background="@drawable/actionbar_dark_background_tile" >
<ImageView
Android:id="@+id/contact"
Android:layout_width="37dp"
Android:layout_height="wrap_content"
Android:layout_gravity="start"
Android:layout_weight=".18"
Android:scaleType="fitCenter"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/logo"/>
<ImageView
Android:id="@+id/share"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_gravity="start"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/share" />
<ImageView
Android:id="@+id/save"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/save" />
<ImageView
Android:id="@+id/set"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/set" />
<ImageView
Android:id="@+id/fix"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/light" />
<ImageView
Android:id="@+id/rotate"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/ic_menu_rotate" />
<ImageView
Android:id="@+id/stock"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight=".14"
Android:background="@drawable/action_bar_left_button"
Android:src="@drawable/stock" />
</LinearLayout>
und dann in deinen main_activity.xml
und füge diesen Code ein: -
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="fill_parent"
tools:context=".MainActivity"
Android:id="@+id/relt"
Android:background="@drawable/background" >
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="78dp"
Android:id="@+id/down"
Android:layout_alignParentBottom="true" >
<include
Android:layout_width="fill_parent"
Android:layout_height="78dp"
layout="@layout/footer" >
</include>
</LinearLayout>
<ImageView
Android:id="@+id/view"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_above="@+id/down"
Android:layout_alignParentLeft="true"
Android:layout_alignParentRight="true"
Android:layout_below="@+id/inc"
>
</ImageView>
<include layout="@layout/header"
Android:id="@+id/inc"
Android:layout_width="fill_parent"
Android:layout_height="50dp"></include>
glückliche Codierung :)
Sie können dies tun, indem Sie ein Rahmenlayout als übergeordnetes Layout verwenden und dann ein lineares Layout darin einfügen. Hier ist ein Beispiel:
<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
>
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:padding="5dp"
Android:textSize="16sp"/>
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:padding="5dp"
Android:textSize="16sp"
/>
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:padding="5dp"
Android:textSize="16sp"/>
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:padding="5dp"
Android:textSize="16sp"/>
</LinearLayout>
<Button
Android:id="@+id/button2"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="10dp"
Android:layout_gravity="bottom"
/>
</FrameLayout>
<LinearLayout
Android:id="@+id/LinearLayouts02"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
Android:gravity="bottom|end">
<TextView
Android:id="@+id/texts1"
Android:layout_height="match_parent"
Android:layout_width="match_parent"
Android:layout_weight="2"
Android:text="@string/forgotpass"
Android:padding="7dp"
Android:gravity="bottom|center_horizontal"
Android:paddingLeft="10dp"
Android:layout_marginBottom="30dp"
Android:bottomLeftRadius="10dp"
Android:bottomRightRadius="50dp"
Android:fontFamily="sans-serif-condensed"
Android:textColor="@color/colorAccent"
Android:textStyle="bold"
Android:textSize="16sp"
Android:topLeftRadius="10dp"
Android:topRightRadius="10dp"/>
</LinearLayout>
Fügen Sie Android:windowSoftInputMode="adjustPan"
zum Manifest hinzu - zur entsprechenden Aktivität:
<activity Android:name="MyActivity"
...
Android:windowSoftInputMode="adjustPan"
...
</activity>
Fügen Sie einfach layout_weight = "1" in Ihrem linearen Layout hinzu, welches Buttons hat.
Edit: - lass es mich einfach machen
folgen Sie so etwas wie unten, der Name der Tags ist möglicherweise nicht korrekt, es handelt sich lediglich um eine Idee
<LL>// Top Parrent LinearLayout
<LL1 height="fill_parent" weight="1" "other tags as requirement"> <TV /><Butons /></LL1> // this layout will fill your screen.
<LL2 height="wrap_content" weight="1" orientation="Horizontal" "other tags as requirement"> <BT1 /><BT2/ ></LL2> // this layout gonna take lower part of button height of your screen
<LL/> TOP PARENT CLOSED
Sie können Ihre Tasten innerhalb eines RelativeLayout bündeln, auch wenn Ihr übergeordnetes Layout linear ist. Stellen Sie sicher, dass das äußerste übergeordnete Element Android: layout_height Attribut auf match_parent ..__ festgelegt ist. Fügen Sie in diesem Button-Tag .__ hinzu. 'Android: alignParentBottom = "True"'