Android:根据按钮文字对齐文本

时间:2013-10-18 14:08:40

标签: android android-layout alignment relativelayout

我有RelativeLayout我有一个按钮,在文本下面。我想根据按钮文本对齐文本,即它从左侧开始的宽度与按钮文本一样。

我尝试使用android:layout_alignLeft="@id/myButton"但是将其与按钮的边缘对齐,而不是按钮文本。

有没有办法实现这个目标?

在我的布局XML中,按钮和文本如下所示:

<Button
    android:id="@+id/myButton"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="16dp"
    android:layout_marginLeft="16dp"
    android:text="Some text" />

<TextView
    android:id="@+id/myTextView"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignLeft="@id/myButton"
    android:layout_below="@id/myButton"
    android:layout_marginTop="16dp"
    android:layout_marginLeft="16dp"
    android:text="Some text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

4 个答案:

答案 0 :(得分:1)

请在您的textview内容中使用此字段 android:gravity =“center”。你会得到相同的..它工作正常..请使用此

答案 1 :(得分:0)

我不确定如何在XML中执行此操作,但我会以编程方式尝试

myTextView.setPadding(myButton.getPaddingLeft(),0,0,0)

编辑:或者,或者,你可以在xml中设置按钮和textview的填充

答案 2 :(得分:0)

如果您使用Java代码怎么办:

TextView txt = (TextView) findViewById(R.id.myTextView);
Button btn = (Button) findViewById(R.id.myButton);

    txt.setPadding(10, 0, 0, 0);
    btn.setPadding(10, 0, 0, 0);

答案 3 :(得分:0)

您必须以编程方式从代码中执行此操作。 代码如下。

RelativeLayout.LayoutParams rParams = ((TextView)findViewById(R.id.myTextView)).getLayoutParams();
rParams.addRule(RelativeLayout.ALIGN_LEFT, R.id.myButton); // Or you can also add other rules like -- RelativeLayout.ALIGN_BASELINE or whatever you want to do. Check our Relative layout API docs.
((TextView)findViewById(R.id.myTextView)).setLayoutParams(rParams);

您还可以获得边距和填充以及文本对齐,例如..

((TextView))findViewById(R.id.myTextView)).setTextAlignment((Button))findViewById(R.id.myButton).getTextAlignment));

//上面的替代代码

myTextView.setTextAlignment(myButton.getTextAlignment());

与边距和填充相同。