Android EditText以编程方式调整大小 [英] Android EditText Resize Programmatically

查看:74
本文介绍了Android EditText以编程方式调整大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个视图,其中有两个LinearLayouts-一个带有Text,EditText和一个Button的视图,一个带有Text和EditText的视图.我试图获取第二行EditText的宽度(在第二行)以匹配第一行的宽度.我尝试使其成为TableLayout而不是仅使用LinearLayouts,现在尝试以编程方式设置宽度.我得到第一个EditText的宽度,并尝试设置第二个EditText的setWidth,但是它不会更改大小.

I have a view in which I have two LinearLayouts - one with Text, EditText and a Button and one with just Text and EditText. I am trying to get the width of the second EditText (on the second line) to match the width of the first line. I have tried making it a TableLayout instead of just using LinearLayouts and now am trying to set the width programmatically. I get the width of the first EditText and try to setWidth of the second EditText, but it doesn't change sizes.

* JAVA调整大小*

@Override
public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);

 getWidthBox = (EditText) findViewById(R.id.editText10);
 setWidthBox = (EditText) findViewById(R.id.EditText01);

 Toast.makeText(this, "Meaured Width: " + Integer.toString(getWidthBox.getMeasuredWidth()), Toast.LENGTH_SHORT).show();
 Toast.makeText(this, "Get Width: " + Integer.toString(getWidthBox.getWidth()), Toast.LENGTH_SHORT).show();

 //Neither of these setWidth Lines Work Correctly
 setWidthBox.getLayoutParams().width=getWidthBox.getWidth();
 setWidthBox.setWidth(getWidthBox.getWidth());
}

* XML布局*

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.15"
        android:paddingLeft="5dp" >


        <TextView
            android:id="@+id/textView2"
            android:layout_width="110dp"
            android:layout_height="wrap_content"
            android:layout_gravity="left|center_vertical"
            android:text="Points Allowed: "
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp" />

        <EditText
            android:id="@+id/editText10"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="number" >
        </EditText>

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:src="@drawable/editpencil" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.15"
        android:paddingLeft="5dp" >

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="110dp"
            android:layout_height="wrap_content"
            android:text="Points Used: "
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp" />

        <EditText
            android:id="@+id/EditText01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"
            android:inputType="number" />
    </LinearLayout>

*来自仿真器的SCREENSHOT *

推荐答案

我以一种对我来说最有意义的方式解决了它.我所做的是通过getWidth获得铅笔按钮的宽度,然后将LinearLayout的右填充(每一行都是其自己的LinearLayout)设置为该按钮的宽度.这似乎工作得很好,并且允许按钮更改大小(基于屏幕大小和DP),并且填充也可以做出相应的反应.

I solved it in a bit of a different way that makes the most sense to me. What I did was get the width of the pencil button via getWidth and then set the right-padding of the LinearLayout (each row is its own LinearLayout) to the width of that button. This seems to work perfectly and allows for the button to change size (based on screen size and DP) and the padding to react accordingly.

imageButtonWidth = (ImageButton) findViewById(R.id.imageButtonEdit);
linearLayoutPointsUsed= (LinearLayout) findViewById(R.id.linearPointsUsed);

widthOfEditButton = imageButtonWidth.getWidth();

linearLayoutPointsUsed.setPadding(5, 0, widthOfEditButton, 0);

这篇关于Android EditText以编程方式调整大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆