【问题标题】:How to Align Two Fields Horizontally in Android Programatically如何以编程方式在Android中水平对齐两个字段
【发布时间】:2017-05-24 20:03:30
【问题描述】:

我正在以编程方式创建线性布局,我想在同一行上对齐两个字段。但我想按预期显示结果。

 lView = new LinearLayout(Main2Activity.this);
                   // lView.setPadding(0,150,0,0);
                    lView.setBackgroundColor(Color.parseColor("#EDFCFC"));
                    lView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));

                    Button logout = new Button(Main2Activity.this);
                    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                    params.gravity = Gravity.RIGHT;
                    logout.setLayoutParams(params);
                    logout.setText("Logout");


                    logout.setBackgroundColor(Color.parseColor("#F53F37"));
                    lView.addView(logout);
TextView title = new TextView(Main2Activity.this);
                    title.setText("ASSOCIATES");
                    title.setTextColor(Color.parseColor("#2BD865"));
                    title.setTextSize(25);
                    title.setTypeface(null, Typeface.BOLD);
                    title.setGravity(Gravity.CENTER);
                    lView.setOrientation(LinearLayout.VERTICAL);
                    lView.addView(title);


                    TextView title1 = new TextView(Main2Activity.this);
                    title1.setText("Date :");
                    title1.setTextSize(20);
                    lView.setOrientation(LinearLayout.VERTICAL);
                    lView.addView(title1);


                    et1 = new EditText(Main2Activity.this);
                    et1.setWidth(10);
                    et1.setGravity(Gravity.RIGHT);
                    et1.setHint("Date");
                    //lView.setOrientation(LinearLayout.VERTICAL);
                    lView.addView(et1); 

我的实际输出是

预期

【问题讨论】:

    标签: android alignment android-linearlayout


    【解决方案1】:

    您需要为您的父 LinearLayout 设置重力以对齐子。

    【讨论】:

      【解决方案2】:

      将线性布局方向设置为水平,如下所示:

                      lView.setOrientation(LinearLayout.HORIZONTAL);
      

      【讨论】:

      • 这里,您需要设置布局的重力,以便您可以在单行显示所有子视图。您必须为您的线性布局应用 android:gravity="center_vertical"。
      【解决方案3】:

      将 LayoutParams 添加到您的 textviewedittext 中,您将获得指定的视图。

      LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
              LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
      params.weight = 1.0f;
      params.gravity = Gravity.CENTER;
      
      TextView title1 = new TextView(Main2Activity.this);
      title1.setLayoutParams(params);
      title1.setText("Date :");
      title1.setTextSize(20);
      lView.setOrientation(LinearLayout.VERTICAL);
      lView.addView(title1);
      params.gravity = Gravity.LEFT;
      
      et1 = new EditText(Main2Activity.this);
      et1.setLayoutParams(params);
      et1.setWidth(10);
      et1.setGravity(Gravity.RIGHT);
      et1.setHint("Date");
      lView.setOrientation(LinearLayout.HORIZONTAL);
      lView.addView(et1);
      

      【讨论】:

      • 我使用了您的代码,但它在左侧一一对齐。
      • 我在 setGravity 上遇到错误...我也更新了我的代码完整代码
      • 居中一一对齐
      • 检查代码。你必须根据你的要求更新重力
      • 它只是一张一张地显示。它不是连续出现的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      • 2012-06-03
      • 2020-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多