ボタンとImageButtonを含むカスタムFrameLayoutを作成しようとしています。これは、XMLが、私はこの
button
とImageButton
。だからと1つのレイアウトをしたいFramelayoutへのビューの追加が表示されない
<FrameLayout
android:id="@+id/frame_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button
android:id="@+id/tab_btn_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/viewed_sep_bg_border"
android:gravity="center"
android:text="Video"
android:textColor="@android:color/black"
android:textSize="14sp" />
<ImageButton
android:id="@+id/tab_tick_one"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="right"
android:layout_marginRight="-4dp"
android:layout_marginTop="-4dp"
android:background="@android:color/transparent"
android:src="@drawable/slanted_tick_green"
android:visibility="gone" />
</FrameLayout>
私はカスタムFrameLayout
を作成したが、それは何も表示されていないあるのです。占有スペースのみ。
public class TabFrameLayout extends FrameLayout {
private TabFrameLayout mTabFrameLayout;
private Button txtButton;
private ImageButton ibTick;
public TabFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
public TabFrameLayout(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public TabFrameLayout(Context context) {
super(context);
init(context);
}
private void init(Context context) {
mTabFrameLayout = this;
FrameLayout.LayoutParams frageParams = new FrameLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.WRAP_CONTENT);
mTabFrameLayout.setLayoutParams(frageParams);
setBackgroundColor(Color.RED);
txtButton = new Button(context);
txtButton.setGravity(Gravity.CENTER);
txtButton.setTextSize(24);
txtButton.setTextColor(Color.BLACK);
txtButton.setText("txtButton");
txtButton.setBackgroundResource(R.drawable.viewed_sep_bg_border);
LayoutParams buttonParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
txtButton.setLayoutParams(buttonParams);
ibTick = new ImageButton(context);
ibTick.setBackgroundColor(Color.TRANSPARENT);
ibTick.setImageResource(R.drawable.slanted_tick_green);
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) ibTick.getLayoutParams();
//params.setLayoutDirection(L);
params.height = 50;
params.width = 50;
params.setMargins(0, -4, -4, 0);
params.gravity = Gravity.RIGHT | Gravity.TOP;
//params.weight = 1.0f;
//params.
ibTick.setLayoutParams(params);
mTabFrameLayout.addView(txtButton);
mTabFrameLayout.addView(ibTick);
mTabFrameLayout.invalidate();
/*RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)txtButton.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);*/
//params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of);
}
}
私はFrameLayout
にImageButton
とボタンを追加したが、表示されません。そして、FrameLayout
にどうすればlayout_weight = 1
を与えることができますか?
'FrameLayout'の代わりに' RelativeLayout'を使用してください。 – Ironman
しかし、FrameLayoutで1つの作業を行うことができれば、なぜRelativeLayoutのような重いレイアウトを使うのでしょうか。方法が必要です。 – Nepster