M.A*_*ali 37 android android-widget android-layout android-view
我需要在文本字段下面绘制一条水平线,使得线条的宽度等于文本宽度(而不是整个屏幕的宽度).
在我的应用程序中,我在视图下方有一个textview(水平线).的线视图的宽度应等于TextView的的宽度.我试过android:layout_width ="wrap_content"和"match_parent",但这并没有解决问题.
这是xml编码示例:
......
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="28dp"
android:text="PopUpWindow"
android:textAppearance="?android:attr/textAppearanceLarge" />
<View
android:id="@+id/separator"
android:layout_width="wrap_content"
android:layout_height="0.3dp"
android:layout_below="@+id/textView1"
android:background="#ffffff" />
......
Run Code Online (Sandbox Code Playgroud)
屏幕的图像是:

请帮我.
Jav*_*ave 90
如果使用a RelativeLayout,则可以使用align-attributes:
<View
android:id="@+id/separator"
android:layout_width="0dp"
android:layout_height="0.3dp"
android:layout_below="@+id/textView1"
android:layout_alignLeft="@+id/textView1"
android:layout_alignRight="@+id/textView1"
android:background="#ffffff" />
Run Code Online (Sandbox Code Playgroud)
如果您使用的是除RelativeLayout之外的布局,则可以通过编程方式匹配窗口小部件的宽度,例如:
layout.xml:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Here's some text"
/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some more text"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
请注意,两个文本字段都设置为wrap_content.
Main.java:
TextView tv1 = (TextView) findViewById(R.id.text1);
TextView tv2 = (TextView) findViewById(R.id.text2);
if(tv1.getWidth() < tv2.getWidth())
tv1.setWidth(tv2.getWidth());
else
tv2.setWidth(tv1.getWidth());
Run Code Online (Sandbox Code Playgroud)
如果您有多个小部件要具有统一的宽度,只需重复上述代码即可获得新元素.例如,假设有一个按钮我想调整宽度,以匹配其他元素:
if(tv2.getWidth() < button)
tv2.setWidth(button.getWidth());
else
button.setWidth(tv2.getWidth());
Run Code Online (Sandbox Code Playgroud)