Ich habe einige Schaltflächen wie diese in meiner App:
<Button
android:id="@+id/bSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="Search"
android:textSize="24sp" />
Ich versuche, dieselbe Schaltfläche mit Text und einem Symbol zu erstellen. android: drawableLeft funktioniert bei mir nicht (Vielleicht würde es funktionieren, aber ich weiß nicht, wie ich eine maximale Höhe für das Symbol festlegen soll).
Also habe ich ein LinearLayout mit einer ImageView und einer TextView erstellt und es wie eine Schaltfläche wirken lassen:
<LinearLayout
android:id="@+id/bSearch2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/btn_default"
android:clickable="true"
android:padding="16dp"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="5dp"
android:adjustViewBounds="true"
android:maxHeight="30dp"
android:maxWidth="30dp"
android:scaleType="fitCenter"
android:src="@drawable/search_icon" />
<TextView
android:id="@+id/tvSearchCaption"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="24sp"
android:paddingRight="30dp"
android:gravity="center"
android:text="Search" />
</LinearLayout>
Meine neue Schaltfläche ist genau das, was ich will (Schriftgröße, Symbol und Textplatzierung). Aber es sieht nicht nach meinen Standardschaltflächen aus:
Also habe ich versucht, den Hintergrund und die Textfarbe meines neuen Buttons zu ändern:
Button Search = (Button) findViewById(R.id.bSearch);
LinearLayout bSearch2 = (LinearLayout) findViewById(R.id.bSearch2);
bSearch2.setBackground(bSearch.getBackground());
TextView tvSearchCaption = (TextView)findViewById(R.id.tvSearchCaption);
tvSearchCaption.setTextColor(bSearch.getTextColors().getDefaultColor());
Dies führt zu einem seltsamen Ergebnis, mein alter Knopf wird durcheinander gebracht:
Wenn ich die Reihenfolge dieser beiden Schaltflächen im XML ändere, sodass die "neue Schaltfläche" zuerst angezeigt wird, ergibt sich ein weiteres seltsames Ergebnis:
Jetzt ist mir aufgefallen, dass beim Versuch, den alten Knopf zu drücken, der neue gedrückt wird.
Irgendwelche Ideen?