【问题标题】:Set a Margin between two buttons programmatically from a linearlayout从线性布局以编程方式设置两个按钮之间的边距
【发布时间】:2013-05-09 07:15:44
【问题描述】:

如何以编程方式在按钮“regler”和“decommender”之间设置 20dp 的边距。

这是我的工作

 LinearLayout lytmain = new LinearLayout(Mcontex);
            lytmain.setOrientation(LinearLayout.VERTICAL);
            LinearLayout lytdate = new LinearLayout(Mcontex);
            LinearLayout lytbutton = new LinearLayout(Mcontex);
            lytbutton.setBackgroundResource(R.color.black);



            lytbutton.setBackgroundResource(R.color.black);
            lytdate.setBackgroundResource(R.color.black);
            lytmain.setBackgroundResource(R.color.black);
            Button btnset = new Button(Mcontex);
            Button btncancel = new Button(Mcontex);


            btncancel.setShadowLayer(2, 1, 1, R.color.black);
            btnset.setShadowLayer(2, 1, 1, R.color.black);
            btnset.setBackgroundResource(R.drawable.black_button);
            btncancel.setBackgroundResource(R.drawable.black_button);

            btnset.setTextColor(Mcontex.getResources().getColor(R.color.white));
            btncancel.setTextColor(Mcontex.getResources().getColor(R.color.white));
            btncancel.setTextSize(15);
            btnset.setTextSize(15);
            btnset.setText("Régler");
            btncancel.setText("Décommander");

            btnset.setGravity(Gravity.CENTER);
            btncancel.setGravity(Gravity.CENTER);

            final WheelView month = new WheelView(Mcontex);
            final WheelView year = new WheelView(Mcontex);
            final WheelView day = new WheelView(Mcontex);

            lytdate.addView(day, new LayoutParams(
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1.2f));
            lytdate.addView(month, new LayoutParams(
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 0.8f));

            lytdate.addView(year, new LayoutParams(
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
            requestWindowFeature(Window.FEATURE_NO_TITLE);



            lytbutton.addView(btnset, new LayoutParams(
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT,1.5f));

            lytbutton.addView(btncancel, new LayoutParams(
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
                    android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1.5f));


            lytbutton.setPadding(5, 5, 5, 5);
            lytmain.addView(lytdate);
            lytmain.addView(lytbutton);

            setContentView(lytmain);

            getWindow().setLayout(LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT);

【问题讨论】:

  • 有很多或更有效的方式来选择一个日期,而不是这个 iOS 的“东西”;-)
  • @Waza_Be:当然亲爱的,但现在这个 ios 问题是我的问题。谢谢你的例子:)
  • @Dimitri :我很好奇您为什么要使用代码而不是使用 XML 布局文件来构建完整的布局。
  • @squonk:这只是队友之间的挑战,我需要最后一步才能赢得它

标签: android android-linearlayout android-button margins


【解决方案1】:

使用 LinearLayout.LayoutParams

http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html

您可以将Margins 设置为LayoutParams,然后将LayoutParams 设置为您的视图。

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, 2, 0, 0);
button.setLayoutParams(params);

【讨论】:

    猜你喜欢
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2020-08-27
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多