我正在使用这样的自定义控件:
a = r'some\'\
r'very\long\path'
在其构造函数中,我称为
public class DayView : RelativeLayout {
.....
}
引用此xml
inflate(getContext(), R.layout.day_view, this);
我也有这样的自定义属性:
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageButton
android:id="@+id/day_previous"
android:layout_width="80dp"
android:layout_height="48dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_arrow_left" />
<ImageButton
android:id="@+id/day_next"
android:layout_width="80dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_arrow_right" />
<TextView
android:id="@+id/day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:padding="8dp"
android:textSize="16sp"
tools:text="Today" />
</RelativeLayout>
我要做的是在用户设置时使用定制属性来更改xml中的属性
因此,当布局使用我的DayView时,它将如下所示:
<declare-styleable name="DayView">
<attr name="backColor" format="color" />
<attr name="textColor" format="color" />
</declare-styleable>
问题是,当我将day_view布局更改为此:
<com.example.dayview
android:id="@+id/firstscreen_today"
app:backColor="@color/panelColor"
app:textColor="@color/panelTextColor"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
我的应用程序不断崩溃,因为它无法使视图膨胀
是否有一种绕过此方法而不覆盖构造函数并使用typedarray.getcolor获取颜色然后将其手动应用于布局的方法?