用作按钮的Android程序化FrameLayout - 如何fill_parent?

时间:2010-08-26 13:01:29

标签: android xml layout button

已经坚持了一段时间,并尝试了一些不同的东西。

基本上我已经覆盖了框架布局,为自己创建了一个自定义按钮。框架布局有两个子项,一个按钮和一个包含项目的linearlayout。

问题是我试图让按钮拉伸到框架布局的大小(即填充父级),而它没有这样做。以下是代码,只是询问您是否需要更多详细信息:

public class ReminderButton extends FrameLayout{

private TextView text;
private ImageView video;
private ImageView pdf;
public Button button;
private LinearLayout itemsLayout;

public ReminderButton(Context context, AttributeSet attrs) {
 super(context, attrs);

 this.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
 this.setFocusable(false);

 LinearLayout itemsLayout = new LinearLayout(context);
 itemsLayout.setOrientation(LinearLayout.HORIZONTAL);
 itemsLayout.setFocusable(false);
 itemsLayout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
 itemsLayout.setWeightSum(100);

 LinearLayout textLayout = new LinearLayout(context);
 textLayout.setFocusable(false);
 textLayout.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.FILL_PARENT, 80));
 textLayout.setGravity(Gravity.CENTER);

 text = new TextView(context);
 text.setFocusable(false);
 text.setTextColor(Color.WHITE);
 text.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
 text.setPadding(5, 3, 3, 3);

 LinearLayout imagesLayout = new LinearLayout(context);
 imagesLayout.setOrientation(LinearLayout.VERTICAL);
 imagesLayout.setFocusable(false);
 imagesLayout.setLayoutParams(new LinearLayout.LayoutParams(0,LayoutParams.FILL_PARENT, 20));
 imagesLayout.setGravity(Gravity.CENTER);

    video = new ImageView(context);
    video.setFocusable(false);
    video.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    video.setImageResource(R.drawable.ic_video_small);

    pdf = new ImageView(context);
    pdf.setFocusable(false);
    pdf.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    pdf.setImageResource(R.drawable.ic_pdf_small);

    // TODO this doesn't go big enough!        
    button = new Button(context);
    button.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
    button.setBackgroundResource(R.drawable.custom_button);

    // Add the text to its linear layout
    textLayout.addView(text);

    // Add the video and pdf icons to the vertical linear layout i.e. below each other
    imagesLayout.addView(video);
    imagesLayout.addView(pdf);

    // Add the text and the layout containing the images to the horizontal linear layout i.e. next to each other
    itemsLayout.addView(textLayout);
    itemsLayout.addView(imagesLayout);

    // Add the items layout and the buttons layout to the frame i.e. on items on top of the button
    this.addView(button);
    this.addView(itemsLayout);
}

1 个答案:

答案 0 :(得分:0)

没有找到答案,但要修复它,我删除了按钮,只是使基本线性布局可点击