У меня есть LinearLayout с заголовком TextView сверху, а затем ListView, который содержит TextViews. Это рядом с другим аналогичным LinearLayout, в котором есть GridView.ListView с TextView только передает текст, который обертывает
Текстовые объекты в ListView не будут центрироваться, если текст не обернется из-за того, что он длинный.
Я использовал их в центре, когда я использовал ширину ListView, но имел другой побочный эффект, который заключался в том, что текст был обрезан на обоих концах длинных строк, даже если он был завернут. Просто не обернулся. Поэтому я исправил это, переместив жесткую кодированную ширину до охватывающего LinearLayout, но теперь у вас есть эта проблема.
Интересно отметить, что мой аналогичный GridView, похоже, не имеет проблемы, хотя он также имеет «фона, пригодный для рисования», который представляет собой прямоугольник с закругленными углами.
раскладка:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3">
<LinearLayout
android:id="@+id/course_part"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/course"
android:textSize="@dimen/text_course_title"
android:textColor="#ff000000"
android:textStyle="bold" />
<ListView
android:id="@+id/listview_course"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</LinearLayout>
И TextView, что населяет ListView является:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_item_mark_name_name"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fontFamily="Roboto"
android:textAlignment="center"
android:text="name"
android:textColor="#ff000000"
android:textSize="@dimen/text_course_grid"
android:textStyle="bold"
android:typeface="monospace"
/>
И я должен отметить, что я динамически изменять размер шрифта в моей ArrayAdapter «GetView» на основе длина текста:
// First shrink it's size to better fit.
float textSize = 30; // In DP units.
int nameLength = mark.name.length();
if (nameLength > 4)
{
if (nameLength <= 8)
textSize *= 4.0f/nameLength; // Up to 8, proportionally shrink it.
else
textSize *= 0.5f; // After 8, leave it at half size.
}
holder.textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize);
holder.textView.setMinHeight(this.textViewPixels);
holder.textView.setText(mark.name); // Set it's name.
holder.textView.setTextColor(appData.getNightMode() ? Color.WHITE : Color.BLACK); // Just added it. Set it's color properly.
Я пробовал гравитацию = "центр" nt = "center", и оба они ведут себя одинаково.
Я пробовал различные сочетания match_parent и fill_parent на различных содержащих представления/макеты с обычно плохими результатами, и если я не затрудняю ширину, то получаю либо слишком много места, либо очень тонкий бесполезный столбец.
Спасибо!
try android: gravity = "center_horizontal" –
Пробовал. Нет радости. –