この問題を説明する画像を投稿したかったのですが、どうやらまだstackoverflowの評判が十分ではないので、私が達成しようとしていることを説明しようと思います。
5列のTableLayoutがあります。これらは、会社名、ジョブ番号、姓、グラフィックの垂直仕切り、および右矢印ボタンで構成されています。仕切りと右矢印ボタンを画面の右側に右揃えにします。列2(ジョブ番号)を、折り返さずに番号全体を保持するのに十分な大きさに拡張してほしい。1列目(会社名)と3列目(姓)で表の残りの部分を埋め、大きすぎる(テキストの折り返しなし)場合は省略記号を使用します。私のテーブルはプログラムで作成されています。
現在、会社名が長くなりすぎると、仕切りと右矢印が画面の右側から押し出されます。
これが私のlayout.xmlです:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView android:id="@+id/searchResultsFoundTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:text="@string/searchResultsLabel"/>
<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableLayout android:id="@+id/searchResultsTableLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10dp"
android:stretchColumns="1"
android:shrinkColumns="0,2" />
</ScrollView>
</LinearLayout>
テーブルを作成するための私のコードは次のとおりです。
TableLayout table = (TableLayout)findViewById(R.id.searchResultsTableLayout);
for (JobBase job : jobList) {
TableRow row = new TableRow(this);
row.setLayoutParams(new TableRow.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
row.setPadding(5, 10, 5, 20);
table.addView(row);
TextView customerNameTextView = new TextView(this);
customerNameTextView.setText(job.getCustomerName());
customerNameTextView.setEllipsize(TextUtils.TruncateAt.END);
customerNameTextView.setTextSize(FONT_SIZE);
customerNameTextView.setPadding(10, 5, 10, 0);
row.addView(customerNameTextView);
TextView jobNumberTextView = new TextView(this);
jobNumberTextView.setText(job.getJobNumber());
jobNumberTextView.setTextSize(FONT_SIZE);
jobNumberTextView.setPadding(10, 5, 10, 0);
row.addView(jobNumberTextView);
TextView crewLeaderTextView = new TextView(this);
crewLeaderTextView.setText(job.getCrewLeader().getLastName());
crewLeaderTextView.setEllipsize(TextUtils.TruncateAt.END);
crewLeaderTextView.setTextSize(FONT_SIZE);
crewLeaderTextView.setPadding(10, 5, 10, 0);
row.addView(crewLeaderTextView);
ImageView dividerImageView = new ImageView(this);
dividerImageView.setImageDrawable(getResources().getDrawable(R.drawable.btn_med_hl_div_white));
dividerImageView.setPadding(10, 10, 10, 0);
row.addView(dividerImageView);
Button rightArrowButton = new Button(this);
rightArrowButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.right_arrow_button));
rightArrowButton.setPadding(10, 0, 10, 0);
rightArrowButton.setOnClickListener(new RowSelectedAction(row));
row.addView(rightArrowButton);
row.setOnClickListener(new RowSelectedAction(row));
}
どんな助けでも大歓迎です。