5
好的。所以我在Main中開始我的活動,抓住FragmentManager並實例化一個需要返回View的片段。好。所以我擴展了一個LinearLayout以便返回一些東西。我的活動和片段很開心,但我不是。擴展LinearLayout子視圖時不可見
我在父ViewGroup中創建的三個LinearLayouts(代碼如下)。我通過計算孩子數量和設置背景顏色來相互比較來驗證這一點。父母也會根據我生孩子的高度來更改大小(當我沒有在父母上聲明任何LayoutParams時)。
public class Mainmenu extends LinearLayout {
private ArrayList<LinearLayout> panes = new ArrayList<LinearLayout>();
private Context context;
private final int
LEFT = 0, CENTER = 1, RIGHT = 2;
public Mainmenu(Context c) {
super(c);
context = c;
setBackgroundColor(Color.WHITE);
setOrientation(HORIZONTAL);
setLayoutParams(
new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));
for(int i=0;i<=RIGHT;i++){ //Create the (3) Panes
LinearLayout ll = new LinearLayout(context);
ll.setLayoutParams(
new LinearLayout.LayoutParams(300,
LinearLayout.LayoutParams.FILL_PARENT));
switch(i){
case LEFT | RIGHT:
ll.setBackgroundColor(Color.DKGRAY);
default:
ll.setBackgroundColor(Color.BLACK);
}
ll.setOrientation(LinearLayout.VERTICAL);
ll.setVisibility(VISIBLE);
ll.setWillNotDraw(false);
panes.add(i, ll);
addView(ll);
}
LinearLayout.LayoutParams buttons =
new LinearLayout.LayoutParams(100, 50);
buttons.setMargins(15, 5, 5, 0);
TextView tv1 = new TextView(context);
tv1.setText("hello");
tv1.setTextColor(Color.RED);
panes.get(LEFT).addView(tv1, buttons);
Button button = new Button(context);
button.setText("Launch Editor");
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
}
});
panes.get(CENTER).addView(button);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
}
}
什麼都不爲null,我的所有元素(3個ViewGroups和2 Views)都存在於樹中,但不可見。我試圖通過父母和孩子把孩子帶到前面,用不同的超級方法創造他們,並以同樣的獵槍方式使視圖無效。這是怎麼回事?是不是很清楚我在做什麼?
哇...在某些時候,我正在擴展一些需要被覆蓋的東西。非常感謝。 – Chaos 2011-06-09 08:46:39