在Android中,我该如何为TextView设置LAYOUTGRAVITY?

4
如何通过代码设置TextView的layout_gravity属性?
我尝试使用layoutparams,但没有得到好的结果。
new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT, Gravity.LEFT | Gravity.CENTER_VERTICAL); 

使用此功能后,我的文本通常会保持在标准位置,即左上角。无论是width:FILL_PARENT还是gravity代码都没有作用。


将TableRow更改为FrameLayout。 - Dawid Sajdak
5个回答

13
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.LEFT | Gravity.CENTER_VERTICAL)

2

您可以通过以下代码在代码中使用重力:

    Button button = (Button) findViewById(R.id.MyButtonId);
    // need to cast to LinearLayout.LayoutParams to access the gravity field
    LayoutParams params = (LayoutParams)button.getLayoutParams(); 
    params.gravity = Gravity.BOTTOM;
    button.setLayoutParams(params);

1

是的,我尝试了所有的方法,但都没有成功。我已经编辑了我的问题。 - Adam Varhegyi

0
 layout = (LinearLayout) findViewById(R.id.vendor_detail_lay);
    LinearLayout linearLayout = new LinearLayout(getApplicationContext());
    linearLayout.setOrientation(0);
    txtveiw = new TextView(NewVendorDetailActivity.this);
    txtveiw.setLayoutParams(Gravity.LEFT | Gravity.CENTER_VERTICAL);
    txtveiw.setId(itemId);
    txtveiw.setText(cursor.getString(cursor.getColumnIndex(DataBaseHelper.KEYNAME)));

    linearLayout.addView(txtveiw);
    layout.addView(linearLayout);

我举个例子,你可以移除 "and" 只设置重力。 - Android

-1

保留现有布局参数的最佳解决方案:

  • 您需要使用父布局的LayoutParams(因此是 layout_gravity)
  • 例如,如果父布局是FrameLayout,则执行以下操作:

    FrameLayout.LayoutParams layoutParams = 
        new FrameLayout.LayoutParams(textView.getLayoutParams());
    layoutParams.gravity = Gravity.BOTTOM | Gravity.RIGHT;
    textView.setLayoutParams(layoutParams);
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接