2017-02-17 74 views
2

我有一个笔记本应用程序,我想根据屏幕高度限制我的editText最大线条。例如Nexus-6p中的40条线和nexus5中的35条线等。根据屏幕尺寸设置EditText高度和最大线条的限制

所以我的问题是如何限制editText行? 我对此没有任何想法。

UPDATE

我想,当光标到达最后行创建新的笔记页面。

回答

0

检查你的屏幕大小,并把线条的高度。

Display display = getWindowManager().getDefaultDisplay(); 
int height = display.getHeight(); 

//Calculate the lines with the height proportion 

edittext.setMaxLines(lines); 
0

您可以通过编写下面的代码获得像素屏幕尺寸

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
int height = size.y; 

在此之后,你可以把条件,然后分配的EditText以下列方式

editText.setMaxLines(); 

您的问题将得到解决

对于屏幕尺寸的更多细节请参考链接: Supporting Multiple Screens

+0

,我怎么能计算最大行? – FarshidABZ

+0

@FarshidABZ你可以在任何变量中存储**行**的值,并可以使用任何你想要的逻辑.. –

+0

@FarshidABZ我的答案是否解决了你的问题? –

0

如果您EditText只包含字符,使用screenSize/editText.getLineHeight()。但是,如果它也包含一些标记(如Spannable),则此方法将无法使用,并且可能没有解决方案。

1

我找到了解决方案,感谢大家的回复。

我的解决办法是:

int lineHeight = getLineHeight(); 
int height = getHeight(); 
int maximumLines = height/lineHeight();