无论文本如何,都可以防止按钮尺寸增大

时间:2017-08-21 19:38:19

标签: android android-layout button

我的布局分为很多部分。

我的问题是关于LinearLayout" container_center2"其中包含一组按钮。

当Button文本较长时,按钮大小会增加。

在XML布局下面:

                           

<LinearLayout android:orientation="vertical" android:id="@id/container_center1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/container_top">
    <TextView android:gravity="center" android:id="@id/tmr" android:layout_width="fill_parent" android:layout_height="wrap_content" style="?lightBackground" />
    <TextView android:gravity="center" android:id="@id/txt" android:layout_width="fill_parent" android:layout_height="0.0dip" style="?noBackground" />
    <WebView android:id="@id/webview"  android:layout_width="fill_parent" android:layout_height="wrap_content"/>

    <ImageView
        android:id="@+id/fieldImageForms"
        android:layout_width="50dip"
        android:layout_height="fill_parent"
        android:src="@drawable/blank"
        android:layout_marginLeft="3dip"
        android:scaleType="center"/>

</LinearLayout>

<LinearLayout android:orientation="horizontal" android:id="@id/container_center2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false" android:weightSum="6.0" android:layout_below="@id/container_center1">
    <LinearLayout android:orientation="vertical" android:id="@id/container_joker" android:layout_width="0.0dip" android:layout_height="fill_parent" android:weightSum="3.0" android:layout_weight="1.0">
        <Button android:id="@id/joker1" android:layout_width="fill_parent" android:layout_height="0.0dip" android:text="@string/txt_joker1" android:layout_weight="1.0" />
        <Button android:id="@id/joker2" android:layout_width="fill_parent" android:layout_height="0.0dip" android:text="@string/txt_joker2" android:layout_weight="1.0" />
        <Button android:id="@id/joker3" android:layout_width="fill_parent" android:layout_height="0.0dip" android:text="@string/txt_joker3" android:layout_weight="1.0" />
    </LinearLayout>
    <LinearLayout android:orientation="vertical" android:id="@id/container_buttons" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="5.0">
        <Button android:id="@id/btn1" android:layout_width="fill_parent" android:layout_height="wrap_content" />
        <Button android:id="@id/btn2" android:layout_width="fill_parent" android:layout_height="wrap_content" />
        <Button android:id="@id/btn3" android:layout_width="fill_parent" android:layout_height="wrap_content" />
        <Button android:id="@id/btn4" android:layout_width="fill_parent" android:layout_height="wrap_content" />
    </LinearLayout>
</LinearLayout>

<LinearLayout android:gravity="top|center" android:orientation="vertical" android:id="@id/container_ads" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/container_center2" />

正常文字时应用程序的截图: This what how i want the Buttons to be no matter the legnth of the text

当文字较大时应用程序的屏幕截图,这会使按钮按下广告容器: This is the case to prevent

这是每个按钮的编程布局更改:

android.widget.LinearLayout.LayoutParams layoutparams = new 
android.widget.LinearLayout.LayoutParams(-1, -2);
layoutparams.setMargins(3, 3, 0, 3);
mBtn1 = (Button)findViewById(R.id.btn1);
mBtn1.setTextSize(0, 18F);
mBtn1.setPadding(5, 10, 5, 10);
mBtn1.setOnClickListener(btn1Handler);
mBtn1.setLayoutParams(layoutparams);

问题:我希望按钮更改为与第一个屏幕截图中的相同,并且如果按钮文本无法完全显示,则预示它会增长。

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

将以下内容添加到按钮

android:maxLines="1"
android:ellipsize="end"

答案 1 :(得分:0)

您可以通过将layout_height XML属性更改为dp等特定android:layout_height="32dp"大小来阻止按钮的高度增加。

您还可以使用maxLines XML属性限制按钮中文本占用的行数。例如android:maxLines="1"。您可能还希望将其与android:ellipsize="end"结合使用,这样如果文字不合适,那么最后会有...。例如Very long text displ...