上有 许多编辑文本,如何动态获取编辑文本的高度?
其中创建动态使用的RelativeLayout(WHIS以XML定义)。第一个编辑文本也是用XML定义的,其他编辑文本是基于这个第一个编辑文本创建的。问题是,正如你可以看到最后的编辑文本正在改变它的高度,它不同于其他的,但我怎么检查它?如何获得此编辑文本的高度并将其添加到屏幕上的下一行?
上有 许多编辑文本,如何动态获取编辑文本的高度?
其中创建动态使用的RelativeLayout(WHIS以XML定义)。第一个编辑文本也是用XML定义的,其他编辑文本是基于这个第一个编辑文本创建的。问题是,正如你可以看到最后的编辑文本正在改变它的高度,它不同于其他的,但我怎么检查它?如何获得此编辑文本的高度并将其添加到屏幕上的下一行?
你可以尝试这样的事情..
EditText editText = (EditText) findViewById(R.id.your_view_id);
int height = editText.getHeight(); // This will give height
EditText editTextLast = (EditText) findViewById(R.id.your_view_id);
editTextLast.setHeight(height); // this will set the height
我试过使用getHeight函数,但它返回0.在XML中,我设置了wrap_content作为第一个编辑文本 –
你可以试试这个动态获取大小:
getMeasuredHeight():请谷歌,了解更多信息。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EditText ed = (EditText) findViewById(R.id.edit1);
ed.setTextSize(20);
ed.setText("here stackoverflow");
ed.measure(0, 0);
int height = edit.getMeasuredHeight();
我通常使用它,因为这个原因,请仔细阅读,它会帮助你在未来:
视图的大小,宽度和高度表达。一个视图实际上拥有两对宽度和高度值。
第一对称为测量宽度和测量高度。这些维度定义了视图想要在其父代中有多大(请参阅布局以获取更多详细信息。)可以通过调用getMeasuredWidth()和getMeasuredHeight()来获得测量的维度。
第二对简单地称为宽度和高度,或者有时绘制宽度和绘图高度。这些尺寸定义了屏幕上的视图的实际尺寸,在绘制时和布局之后。这些值可能但不一定与测量的宽度和高度不同。宽度和高度可以通过调用getWidth()和getHeight()来获得。
在'onCreate'期间在'View'上调用'getMeasuredHeight'的宽度和高度可能返回零 – nandsito
看看http://stackoverflow.com/questions/4393612/when-can-i-first-measure-a-view – nandsito