4

TextViewを拡張するビューに追加しようとしていますLinearLayout。layoutparamsの幅をfill_parentまたはに設定するwrap_contentと、内部のテキストTextViewは次のように垂直に表示されます。

例えば

 T
 E
 X
 T

ただし、幅を一定の数値に設定すると、正常に、または期待どおりに表示されます。

例:テキスト

私の質問は、なぜこれが起こるのか、そしてそれをどのように解決するのか、つまり、設定やTextViewなどの固定幅を設定せずにテキストを水平に書くことができるようにプログラムで設定する方法です。fill_parentwrap_content

ilGalleryこれが拡張する親のXMLコードの設定ですLinearLayout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <com.illib.ilgallery.view.ILGallery
        android:id="@+id/galleryLayout"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"/>

</LinearLayout>

以下は、その中の子を初期化する方法のコードです。

ilViewPager = new ILViewPager(context);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
ilViewPager.setLayoutParams(params); 
ilgallery = this;

//initialize default header and footer view
LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

headerView = new TextView(context);
headerView.setLayoutParams(params2);
((TextView)headerView).setTextSize(TypedValue.COMPLEX_UNIT_PX,40);
((TextView)headerView).setText("hello");

footerView = new TextView(context);
footerView.setLayoutParams(params2);    
((TextView)footerView).setTextSize(TypedValue.COMPLEX_UNIT_PX,40);
((TextView)footerView).setText("hello2");
4

1 に答える 1

0

LinearLayout内には1つのアイテムしかないようです。"horizontal"次のように、LinearLayoutの方向をに設定してください。

android:orientation="horizontal"

また、可能な限り、新しいLayoutParamsオブジェクトを最初から作成する代わりに、現在のレイアウトからLayoutParamsを取得し、次のように変更する必要があります。

LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)ilViewPager.getLayoutParams();
lp.<change-any-values>;
ilViewPager.setLayoutParams(lp);
于 2013-03-20T21:09:35.160 に答える