내 앱에 다음과 같은 버튼이 있습니다.
<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가 나를 위해 작동하지 않습니다 (아마도 작동하지만 아이콘에 최대 높이를 설정하는 방법을 모르겠습니다).
그래서 ImageView와 TextView로 LinearLayout을 만들고 버튼처럼 작동하도록 만들었습니다.
<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에서이 두 버튼의 순서를 변경하여 "새 버튼"이 먼저 표시되면 또 다른 이상한 결과가 나타납니다.
이제 이전 버튼을 누르려고하면 새 버튼이 눌리는 것을 알았습니다.
어떤 아이디어?