2017-02-17 26 views
2

私はノートブックアプリケーションを持っており、画面の高さに応じてeditTextの最大行数を制限したい。たとえばネクサス6pでは40行、ネクサス5では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.setMaxLines(); 

をのEditTextを割り当てることができますあなたの問題は、リンクを参照してください。画面サイズの詳細については

を解決されます。 Supporting Multiple Screens

+0

そして、どのように私は最大の線を計算することができますか? – FarshidABZ

+0

@FarshidABZ ** line **の値を任意の変数に保存でき、任意のロジックを使用できます。 –

+0

@FarshidABZは私の答えであなたの問題を解決しましたか? –

0

私はあなたが画面に基づいて別のレイアウトファイルを作成する必要があると思います寸法。これらのレイアウトファイルでは、EditTextのmaxLineパラメータを変更できます。

チェックhttps://developer.android.com/guide/practices/screens_support.html

+0

いいえ、正確には最大行を設定したいので、カーソルが最後の行に達したときに新しいノートページを作成したいからです。ありがとうございました – FarshidABZ

0

あなたEditTextはただ文字が含まれている場合は、screenSize/editText.getLineHeight()を使用しています。ただし、マークアップ(Spannableなど)も含まれている場合は、この方法は役に立たず、解決策がない可能性があります。

1

私は解決策を見つけたので、皆様にお返事いただき、ありがとうございます。

私のソリューションは、次のとおりです。

int lineHeight = getLineHeight(); 
int height = getHeight(); 
int maximumLines = height/lineHeight(); 
関連する問題