我正在实施自定义视图,并且我有三个我无法显示的子视图。似乎子视图没有显示;我现在将背景设置为红色,蓝色和绿色,以显示我设置布局的位置,如图所示。
我需要显示子视图以便视图完整。
这是我在onLayout中用于子视图的代码:
backButton.layout(leftOffset, topOffset, leftOffset + seventhWidth, topOffset + seventhWidth);
backButton.setBackgroundColor(Color.RED);
nextButton.layout((int) (leftOffset + calendarWidth - seventhWidth), topOffset, (int) (leftOffset + calendarWidth), topOffset + seventhWidth);
nextButton.setBackgroundColor(Color.GREEN);
monthContainerLayout.layout(leftOffset + thirdWidth, topOffset, (int) Math.round(leftOffset + 2 * thirdWidth), topOffset + seventhWidth);
monthContainerLayout.setBackgroundColor(Color.BLUE);
这是红色方块的布局XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/back"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:src="@drawable/back_icon"
android:layout_width="wrap_content"
android:layout_height="@dimen/icon_height" />
</RelativeLayout>
这是代码和布局当前产生的内容(我的自定义视图只是日历):
不确定这是否重要,但这就是我提出意见的方式:
LayoutInflater inflater = LayoutInflater.from(context);
inflater.inflate(R.layout.calendar_back, this);
inflater.inflate(R.layout.calendar_forward, this);
inflater.inflate(R.layout.calendar_header, this);
backButton = (RelativeLayout) findViewById(R.id.back);
nextButton = (RelativeLayout) findViewById(R.id.forward);
monthContainerLayout = (RelativeLayout) findViewById(R.id.header);