【问题标题】: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。
【问题讨论】:
标签:
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