【问题标题】:How to set layout_gravity for Textview inside Relative layout [duplicate]如何在相对布局中为Textview设置layout_gravity [重复]
【发布时间】:2018-02-02 09:50:08
【问题描述】:

我需要为相对布局内的 Textview 设置布局重力, 我通过 xml 执行此操作,但如何以编程方式执行此操作?

<Relativelayout>
    <Textview
     android:gravity="left"
     android:layout_gravity="center_vertical|right"/>
</Relativelayout>

我需要以编程方式设置重力和 layout_gravity。

【问题讨论】:

  • 只需在父级中使用中心并对齐父级。
  • This answer 可能会对您有所帮助。

标签: android android-layout textview android-relativelayout


【解决方案1】:

试试这个

使用RelativeLayout.LayoutParams

指定视图在RelativeLayout 中的定位方式。包含视图的相对布局使用这些布局参数的值来确定视图在屏幕上的位置。如果视图不包含在相对布局中,则忽略这些属性。

示例代码

TextView textView=findViewById(R.id.spn);
RelativeLayout.LayoutParams layoutParams =
                (RelativeLayout.LayoutParams)textView.getLayoutParams();    
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
textView.setLayoutParams(layoutParams);

【讨论】:

    【解决方案2】:

    试试这个:

      RelativeLayout relativeLayout=new RelativeLayout(this);
      TextView textView=new TextView(this);
      RelativeLayout.LayoutParams layoutParams=new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
      layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
      layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
      textView.setLayoutParams(layoutParams);
      relativeLayout.addView(textView);
    

    【讨论】:

    • 你是天才。
    【解决方案3】:

    创建一个 layoutParams 对象,在那里定义您的重力并将其设置为您的文本视图。

    【讨论】:

      【解决方案4】:
          LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
          params.weight = 1.0f;
          params.gravity = Gravity.TOP;
      
      button.setLayoutParams(params);
      

      LinearLayout.LayoutParams替换为RelativeLayout.LayoutParams

      【讨论】:

        【解决方案5】:
         Textview tx= new Textview(this);
        RelativeLayout.LayoutParams params = new Relative.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
        params.weight = 1.0f;
        params.gravity = Gravity.center_vertical;
        
        tx.setLayoutParams(params):
        

        或其他选项检查此链接 https://android--code.blogspot.com/2015/05/android-textview-layout-gravity.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-06
          • 2011-08-30
          • 2012-07-04
          • 2013-09-05
          相关资源
          最近更新 更多