簡單子:我想膨脹母與子1具有0dp寬度。充氣與0dp佈局寬度和重量(編程)
XML父:
<com.example.KeyPad // extend LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="4" // for the children
android:layout_weight="1" // this is for its parent
android:clickable="true"
android:background="@color/MidnightBlue" >
的子類:
public class KeyButton extends RelativeLayout implements View.OnClickListener{
public KeyButton(Context c) {
super(c);
RelativeLayout v = (RelativeLayout) LayoutInflater.from(c).inflate(R.layout.key_button, this, true);
}
}
}
它使用R.layout.key_button XML:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_weight="1"
android:layout_width="0dp"
android:background="@android:color/holo_red_dark"
android:layout_height="wrap_content">
<TextView ... />
</RelativeLayout>
而且孩子得到通過補充說:
Parent.addView(new KeyButton(context));
問題是android:layout_weight
看起來沒有采取行動,並且小孩的layout_width停留在「0dp」處。如果我將寬度更改爲50dp,則可以看到正確膨脹的孩子。
還試圖以編程方式添加參數獲取添加時:
KeyButton bt = new KeyButton(context);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT,1.0f);
bt.setLayoutParams(lp);
Parent.addView(bt);
我如何用充氣0dp /重量的孩子?當然,你可以看到我已經定義了父級的weight_sum。
更多信息,你有沒有嘗試刪除'weight_sum'?我不確定,但是讓系統在這裏處理可能會更好。 – codeMagic
@codeMagic剛剛嘗試過。沒有工作(它膨脹但保持「不可見」= 0dp)。 – Diolor