2011-12-30 5 views
4

テーブルに2列の行を動的に追加しています。列の1つに複数の行にまたがるテキストが含まれています。私は、テキストビューのレイアウトパラメータに重みを付け加えました。これで、画面外のクリップがなくなりましたが、マルチラインテキストの長さにかかわらず、表に2行半に制限されているように見えます。テーブルはxmlで定義されており、その他のものはすべてプログラムで実行されます。Android:Tablerow複数行のテキストビューの縦方向の切り取り

TableRow.LayoutParams rowParams = new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT); 
    TableRow.LayoutParams paramsStar = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT); 
    paramsStar.setMargins(0,0,40,0); 
    TableRow.LayoutParams paramsText = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.FILL_PARENT, (float)1.0); 

    TableRow tr = new TableRow(this); 
    tr.setLayoutParams(rowParams); 

    TextView viewStar = new TextView(this); 
    viewStar.setTextSize((float) 30.0); 
    viewStar.setText("*"); 
    viewStar.setLayoutParams(paramsStar); 
    viewStar.setTypeface(Typeface.DEFAULT_BOLD, 2); 

    TextView viewText = new TextView(this); 
    viewText.setText("Long multiline text piece"); //<--- Here the long text goes 
    viewText.setLayoutParams(paramsText); 

    tr.addView(viewStar); 
    tr.addView(viewText); 
    table.addView(tr, rowParams); 

この垂直クリッピングを修正するにはどうすればよいですか?以下の問題の スクリーンショット:私は、問題の根本を見つけた

Here is the link showing the problem

+0

これをparamsTextに使用します: 'TableRow.LayoutParams paramsText = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT、TableRow.LayoutParams.WRAP_CONTENT);' –

答えて

1

。最初の列の値textsizeは、複数行のテキストクリップを作成しました。テキストサイズを小さくすると、問題は消えます。 私は理由を説明することはできません。

0

別の回答ここで取り上げる:Androidは非常に非直感的な方法でテーブルの行の高さを測定します。 2つのTextView(1つまたは複数)がTableRowの各列に1つずつある場合は、最初のTextViewに設定した上下のパディングが2番目のTextViewに対して同じに設定されているか、コンテンツなどの奇妙なものが得られるようにする必要があります2番目のTextViewのクリッピングと奇妙な配置。

関連する問題