ฉันมีปุ่มแบบนี้ในแอปของฉัน:
<Button
android:id="@+id/bSearch"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="Search"
android:textSize="24sp" />
ฉันพยายามสร้างปุ่มเดียวกันกับข้อความและไอคอน android: drawableLeft ใช้ไม่ได้สำหรับฉัน (อาจจะเป็นไปได้ แต่ฉันไม่รู้วิธีตั้งค่าความสูงสูงสุดให้กับไอคอน)
ดังนั้นฉันจึงสร้าง LinearLayout ด้วย ImageView และ TextView และทำให้มันทำหน้าที่เหมือนปุ่ม:
<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>
ปุ่มใหม่ของฉันคือสิ่งที่ฉันต้องการ (ขนาดตัวอักษรไอคอนและตำแหน่งข้อความ) แต่ดูเหมือนปุ่มเริ่มต้นของฉัน:
ดังนั้นฉันจึงลองเปลี่ยนพื้นหลังและสีข้อความของปุ่มใหม่ของฉัน:
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());
สิ่งนี้ให้ผลลัพธ์ที่แปลกปุ่มเก่าของฉันยุ่งเหยิง:
เมื่อฉันเปลี่ยนลำดับของปุ่มทั้งสองนี้ใน XML ดังนั้น "ปุ่มใหม่" จึงไปก่อนมันทำให้เกิดผลลัพธ์แปลก ๆ อีกอย่าง:
ตอนนี้ฉันสังเกตว่าเมื่อฉันพยายามกดปุ่มเก่าปุ่มใหม่จะถูกกด
ความคิดใด ๆ ?