Tôi có một số nút như thế này trong ứng dụng của mình:
<Button
android:id="@+id/bSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="Search"
android:textSize="24sp" />
Tôi đang cố tạo một nút giống với văn bản và biểu tượng. android: drawableLeft không hoạt động đối với tôi (Có thể có, nhưng tôi không biết cách đặt chiều cao tối đa cho biểu tượng).
Vì vậy, tôi đã tạo LinearLayout với ImageView và TextView và làm cho nó hoạt động giống như một nút:
<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>
Nút mới của tôi là chính xác những gì tôi muốn (kích thước phông chữ, biểu tượng và vị trí văn bản). Nhưng nó không giống các nút mặc định của tôi:
Vì vậy, tôi đã thử, để thay đổi nền và màu văn bản của Nút mới của mình:
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());
Điều này cho một kết quả kỳ lạ, nút cũ của tôi, bị lộn xộn:
Khi tôi thay đổi thứ tự của hai nút này trong XML, vì vậy "nút mới" đi trước, nó tạo ra một kết quả kỳ lạ khác:
Bây giờ tôi nhận thấy rằng khi tôi cố gắng nhấn nút cũ, nút mới sẽ được nhấn.
Có ý kiến gì không?