Как динамически выравнивать текст по верху текстового представления
Я столкнулся с проблемой при попытке динамического выравнивания текста по верху текстового представления. У меня есть метод, который создает текстовые представления динамически. Я установил гравитацию текстового представления в Gravity.TOP. Какой вариант должен поместить текст в самый верх объекта textView. Однако, когда я запускаю проект, в верхней части объекта появляется разрыв в 2 строки текста. Я могу обойти это, изменив высоту textView, но я бы предпочел, чтобы он загружался в наборе размера в зависимости от того, сколько текста слишком загружено в textView.
Вот моя функция, она работает хорошо и делает то, что должна делать:
public void addItems(LinearLayout page,int id,String text,int row){
LinearLayout item = new LinearLayout(this);
item.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
TextView itemNum = new TextView(this);
//itemNum.setLayoutParams(new ViewGroup.LayoutParams(50,50));
itemNum.setWidth(50);
itemNum.setTextSize(40);
itemNum.setTextAppearance(getApplicationContext(), R.style.large_text);
itemNum.setLeft(0);
itemNum.setText(row+":");
LayoutParams numParams = new LinearLayout.LayoutParams(70, 70);
numParams.setMargins(25, 0, 0, 0);
TextView itemDetails = new TextView(this);
itemDetails.setLayoutParams(new ViewGroup.LayoutParams(150,LayoutParams.WRAP_CONTENT));
itemDetails.setText(text);
itemDetails.setWidth(100);
itemDetails.setLeft(5);
itemDetails.setRight(5);
itemDetails.setTop(0);
itemDetails.setVisibility(View.VISIBLE);
itemDetails.setGravity(itemDetails.getGravity() | Gravity.TOP);
itemDetails.setPadding(0,0,0,0);
Button delete = new Button(this);
//delete.setLayoutParams(new ViewGroup.LayoutParams(50,50));
delete.setText("Delete");
LayoutParams btnParams = new LinearLayout.LayoutParams(70, 70);
btnParams.setMargins(0, 0, 15, 0);
item.addView(itemNum,numParams);
item.addView(itemDetails);
item.addView(delete,btnParams);
page.addView(item);
Log.d("Loop","Loop is adding function in");
}
Если кто-нибудь может увидеть, где я ошибся, я был бы очень признателен. Приведенный выше метод может показаться очень сложным, но я новичок в Java.
Не уверен, поможет ли это, но вот моя строка для отображения в textView:
String formatText = lat + ", " + lng + " /n" + result;