3
我想從一個XML文件充氣組後創建一個複合視圖組。如何填充從LinearLayout擴展的複合視圖組?
視圖組的組成如下:LinearLayout Root,2個子LinearLayouts。我能夠在佈局編輯器中正確地看到佈局;但是,當我嘗試從編輯器添加視圖(如按鈕)時,視圖不顯示,應用程序立即強制關閉。我被告知我可能需要重寫onLayout方法來正確繪製視圖組件,但我很困惑。
我的班級:
public class FocusBox extends LinearLayout {
private LinearLayout rootLayout,
contentLayout,
topLayout;
public FocusBox(Context context)
{
super(context, null);
}
public FocusBox(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.focus_box, this);
rootLayout = (LinearLayout)findViewById(R.id.focusBoxParent);
contentLayout = (LinearLayout)findViewById(R.id.focusBottom);
topLayout = (LinearLayout)findViewById(R.id.focusTop);
}
}
和XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp"
android:id="@+id/focusBoxParent"
android:orientation="vertical">
<LinearLayout
android:background="@drawable/gradients"
android:layout_weight=".1"
android:gravity="center"
android:id="@+id/focusTop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:text="TextView"
android:id="@+id/focusTitle"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_width="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight=".9"
android:id="@+id/focusBottom"
android:background="@drawable/gradient2"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
您是否解決了問題?我只是嘗試了與上面發佈的代碼完全相同的代碼,它的工作原理完美無瑕。我沒有複製你的代碼,而是單獨來到這個解決方案中,所得到的代碼幾乎完全一樣。我檢查了任何值得注意的差異,但沒有。 – stefs