2

これはうまくいくわけではありませんが、ヒントを得ることを期待しています。私の研究ではコードがうまくいくはずです。 。既存のlayout.xmlにLinearLayoutにテキストビューを追加したい場合は

私が含まれ、既存のlayout.xmlのファイルがあります:アクティビティがディあるときに新しいのTextViewが表示されない

LinearLayout ll = new LinearLayout(this); 
    ll = (LinearLayout)findViewById(R.id.scrollLinearLayout); 

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 

    TextView tv = new TextView(this); 
    tv.setId(1); 
    tv.setTextSize(R.dimen.text_size_medium); 
    tv.setText("test"); 
    tv.setLayoutParams(lp); 
    ll.addView(tv); 

<RelativeLayout style="@style/bodyLayout"> 
    <ScrollView 
     android:id="@+id/scrollBody" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fillViewport="false" 
    > 
     <LinearLayout 
      android:id="@+id/scrollLinearLayout" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
     >   

     </LinearLayout> 
    </ScrollView> 
</RelativeLayout> 

を次のようにその後、私はプログラムによるコードを持っているが広がった、私はあなたが新しいビュー(何を)追加した場合、私はあなたのコードが

LinearLayout ll = (LinearLayout)findViewById(R.id.subLinear); 

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 

    TextView tv = new TextView(this); 
    tv.setId(1); 
    tv.setTextSize(15); 
    tv.setText("test adding"); 
    tv.setLayoutParams(lp); 
    ll.addView(tv); 

正常に動作し実行した

+0

このリンクはあなたを助けることができる、それがリフレッシュされます

ll.invalidate(); 

この行を追加します。 flow.com/questions/4203506/how-can-i-add-a-textview-to-a-linearlayout-dynamically-in-android/27781046#27781046 –

答えて

2

...私は...新しいのTextViewがのLinearLayoutのセクションで明らかに欠けている何かを表示されます知っています ます。https:// stackoverを任意のボタンのクリックイベントから、それはあなたのコンポーネント

+0

フォローアップをありがとう、この問題は私のコード:** LinearLayout ll = new LinearLayout(this); **その行を削除した後、すべてうまくいった。私のコードをテストして確認してくれてありがとう、そしてll.invalidate()のヒント。乾杯。 – Telegard

+1

問題ではなかったフォローアップでは(私がさらにチェックした理由は不思議そうでした)、これについてのバリエーションをテストしましたが、それはストレートな数値の代わりに** R.dimen.text_size_medium **を使用することに関連しているようです。 dimensファイルでは、値は18spと表され、setTextSizeメソッドへの適切なパラメータとして変換されません。ストレート値を入力すると機能します。これをもっと研究しなければならないのですが、値をハードコーディングするのではなく、xmlリソースから値を引き出すことになります... – Telegard

+0

これはうまくいくようです:\t tv.setTextSize(this.getApplicationContext()。getResources()。getDimensionPixelSize(R。 dimen.text_size_medium));乾杯。 – Telegard

関連する問題