У меня есть класс CalloutView
, расширенный с RelativeLayout
. В настоящее время не имеет никаких методов, он просто переопределяет конструкторы.
У меня также есть XML-макет для него:
<?xml version="1.0" encoding="utf-8"?>
<com.example.CalloutView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="70dp">
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="6dp"
android:layout_marginTop="6dp"
android:background="@drawable/button_disclose"
android:src="@drawable/disclose" />
</com.example.CalloutView>
Раздуваю макет экземпляра CalloutView
этим кодом:
this.calloutView = (CalloutView) ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.callout_view, null);
this.calloutView.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, 105));
this.calloutView.measure(MeasureSpec.makeMeasureSpec(400, MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(105, MeasureSpec.EXACTLY));
Это прекрасно отрисовывается. ImageButton
появляется справа от него, как и должно быть.
Но когда я добавляю фон к CalloutView
:
<com.example.CalloutView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="70dp"
android:background="@drawable/callout">
...
</com.example.CalloutView>
Отображает только фон, но ImageButton
не появляется.
Редактировать
Я использую изображение NinePatch в качестве фона. Если я заменю его не NinePatch, все будет работать нормально. Ошибка в Android?
Главный вопрос, почему он ImageButton
не отображается, если задан фон?