タイトルのTextViewが上部にあり、次にListViewにTextViewsが含まれるLinearLayoutがあります。これは、その中にGridViewがある別の同様のLinearLayoutの隣にあります。TextViewでのListViewは、ラップするテキストのみを中心にしています
長すぎるためにテキストが折り返されない限り、リストビュー内のTextViewは中央になりません。
私は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さ:
<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.
私はgravity = "center"とtextAlignmeを試しましたnt = "center"であり、両方とも同じように動作します。
さまざまなビュー/レイアウトにさまざまな組み合わせのmatch_parentとfill_parentを組み合わせて試してみましたが、通常は悪い結果が出ました。もし幅をハードワイヤリングしなければ、あまりにも多くのスペースや非常に薄い無駄なカラムになります。
ありがとうございます!
try android:gravity = "center_horizontal" –
試してみました。喜びはありません。 –