2011-01-31 15 views

答えて

86
TextView pf = new TextView(context); 
pf.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

または

parentView.addView(pf, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
+1

その2つのコード? –

+6

'android.view.ViewGroup $ LayoutParamsはandroid.widget.LinearLayout $ LayoutParams'にキャストすることはできません。 –

+0

主な違いは、最初のコードでは、既にその設定で新しいTextViewを作成していることです。 2番目のビューでは、既存のビューに追加していますが、これらのパラメータも設定しています。キャストの問題については、私はあなたが適切なクラスをキャストしなければならないと思う。 – Franco

53

同じ結果を達成するための別の方法があります。ケースでは、例えば一つのパラメータのみ、「高さ」を設定する必要があります。

TextView textView = (TextView)findViewById(R.id.text_view); 
ViewGroup.LayoutParams params = textView.getLayoutParams(); 
params.height = ViewGroup.LayoutParams.WRAP_CONTENT; 
textView.setLayoutParams(params); 
+0

これは素晴らしい作品です。これが 'LinearLayout'で行われた場合、' ll.invalidate() 'が必要であるとは思われません。どうして? –

26

WRAP_CONTENT

textView.getLayoutParams().width = LinearLayout.LayoutParams.WRAP_CONTENT; // For change `TextView` width to `WRAP_CONTENT` 
//textView.getLayoutParams().width = 200; // For change `TextView` width to 200 

に変更TextView幅の最も簡単な解決策をとの違いは何であるか・ホープこのヘルプ

+3

他のパラメータを上書きしないため、シンプルで適切なソリューションです。 – CoolMind

+0

これははるかに簡単なので私のanwerを削除マークしました。 – FrankKrumnow

+1

これは最適なソリューションです –

関連する問題