it-swarm.com.de

Zwei Tasten unabhängig von der Bildschirmgröße auf die gleiche Breite einstellen?

Ok, ich habe zwei Schaltflächen in linearer Anordnung:

<LinearLayout Android:id="@+id/linearLayout1" 
              Android:layout_height="wrap_content" 
              Android:layout_width="fill_parent">
        <Button Android:id="@+id/aktiviraj_paket" 
                Android:text="Aktiviraj" 
                Android:layout_height="40sp" 
                Android:layout_width="160sp" 
                Android:background="@drawable/my_border3" 
                Android:onClick="myClickHandle"></Button>
        <Button Android:id="@+id/deaktiviraj_paket" 
                Android:text="Deaktiviraj" 
                Android:layout_height="40sp" 
                Android:layout_width="fill_parent" 
                Android:background="@drawable/my_border3"
                Android:onClick="myClickHandle">
        </Button>
</LinearLayout>

Die Sache ist also, wenn ich fill parent auf beiden Buttons verwende, so sind diese auf einander, also habe ich den ersten button 160sp width gemacht, und second ist fill_parent. Wenn dies auf einem 4-Zoll-Bildschirm oder kleiner angezeigt wird, haben die Tasten dieselbe Größe, aber wenn ich dies auf einem Tablet (10 Zoll) versuche, bleibt der erste Button 160sp breit und der zweite wird bis zum Ende des Bildschirms gedehnt (weil fill_parent). Kann ich das machen, also könnten beide Knöpfe gleich groß sein, egal wie groß der Bildschirm ist?

38
Goran

Verwenden Sie Android:layout_weight="1" für beide Buttons. Setze Android:layout_width="0dp" für beide. Da beide Tasten jetzt gleich gewichtet sind, haben sie jetzt jeweils die Hälfte der Breite des übergeordneten Elements.

Weitere Informationen finden Sie hier: http://developer.Android.com/guide/topics/ui/layout/linear.html

94
Che Jami

Wenn Sie vorhaben, alle Tasten auf die Breite der breitesten Schaltfläche einzustellen, wird das Einstellen von Gewichtungen dies nicht tun. Stattdessen können Sie alle Schaltflächen in einem TableLayout einfügen:

   <TableLayout 
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" >

        <TableRow
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content" >

            <Button
                Android:id="@+id/button1"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:text="@string/short_text" />
        </TableRow>

        <TableRow
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content" >

            <Button
                Android:id="@+id/button2"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:text="@string/enter_manually" />
        </TableRow>
    </TableLayout>

In diesem Layout werden 2 Schaltflächen mit derselben Breite übereinander angezeigt.

16
user3838403

auf jeden Button einstellen:

Android:layout_weight="0.5"
Android:layout_width="0dp"
3
Bogdan M.
Display display=getWindowManager().getDefaultDisplay();
    int width=display.getWidth();
    btn1.setWidth(width/2);
    btn2.seTwidth(width/2);

Stellen Sie etwas in der XML-Datei ein, suchen Sie zuerst die Breite des Geräts und dann die Breite auf beide Tasten Jetzt werden sie auf jedem Gerät genau gleich aussehen

3
Tofeeq
<LinearLayout
    Android:id="@+id/layout"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:orientation="horizontal" >

    <Button
        Android:id="@+id/button1"
        Android:layout_width="match_parent"
        Android:layout_height="40dp"
        Android:layout_weight="1"
        Android:text="One" />

    <Button
        Android:id="@+id/button2"
        Android:layout_width="match_parent"
        Android:layout_height="40dp"
        Android:layout_weight="1"
        Android:text="Two" />
</LinearLayout>

Dies ist das Beispiel für gleich große Tasten für nebeneinander angeordnete Codes

Android:layout_weight 

wird verwendet, um Platz für Schaltflächen oder gleich viel für jedes untergeordnete Element von LinearLayout zuzuweisen.

Hinweis: Dies funktioniert nur bei linearem Layout.

1
Prits Ramani
Android:layout_weight="0.5"
Android:layout_width="0dp

es funktioniert 

1
Baris C

Das funktioniert:

<LinearLayout
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:orientation="horizontal">
    <Button
        Android:layout_width="0dp"
        Android:layout_weight="0.5"
        Android:layout_height="wrap_content"
        Android:text="my btn 1"/>
    <Button
        Android:layout_width="0dp"
        Android:layout_weight="0.5"
        Android:layout_height="wrap_content"
        Android:text="my btn 2"/>
    </LinearLayout>
0
ata rezapouri

Sie können sie in einem linearen Layout festlegen, das in einem relativen Layout wie diesem verschachtelt ist

<LinearLayout
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:layout_centerHorizontal="true"
    Android:gravity="center"
    Android:orientation="vertical">



        <Button
            Android:id="@+id/bestBtn"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:textStyle="bold"
            Android:layout_marginBottom="5dp"
            Android:textAllCaps="false"
            Android:textSize="16sp"
            Android:textColor="@color/grey_light2"
            Android:background="@drawable/sharefb_btn"
            Android:text="@string/sharefb" />
        <Button
            Android:id="@+id/playBtn"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:textColor="@color/grey_light2"
            Android:textAllCaps="false"
            Android:textSize="16sp"
            Android:layout_marginBottom="50dp"
            Android:textStyle="bold"
            Android:background="@drawable/puzzle_opening_btn_ncvtelen_3"
            Android:text="@string/playagain" />

</LinearLayout>

und Sie werden so etwas bekommen

enter image description here

0

Festlegen von Android: layout_weight = "1" im enthaltenden Layout Für das lineare Layout sollte Android: Ausrichtung als horizontal festgelegt sein. Und dann sollten die inneren Knöpfe folgendes haben:

Android: layout_width = "0dp"

Android: layout_weight = "0.5"

0