0

1 つは右に、もう 1 つは左に、2 つの要素を一列に配置したいと考えています。コードからこれを行いたい...そしてスタイルを使用します。

最初に static layout.xml で試してみました: これはうまくいきます:

 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="@string/hello_world" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="TextView" />

 </RelativeLayout>

それから私はスタイルを作成し、

   <style name="t1" parent="@android:style/TextAppearance.Large">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_alignParentLeft">true</item>
</style>

<style name="t2" parent="@android:style/TextAppearance.Large">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_alignParentRight">true</item>
</style>   

そして試しました:

RelativeLayout rel = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new 
        RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT);
    rel.setLayoutParams(params);

    TextView t1 = new TextView(this);   
    t1.setText("balbla_1");
    t1.setTextAppearance(this, R.style.t1);


    TextView t2 = new TextView(this);
    t2.setText("balbla_2");
    t2.setTextAppearance(this, R.style.t2);


    rel.addView(t1);
    rel.addView(t2);

    setContentView(rel);

しかし、align のスタイルが受け入れられなかったため、要素が重複しているように見えます...そのような手順にスタイルを使用することは可能ですか?

4

2 に答える 2

1

javadocで指定されているように、setTextAppearenceは一部の属性に対してのみ機能します。

/**
 * Sets the text color, size, style, hint color, and highlight color
 * from the specified TextAppearance resource.
 */

しかし、あなたはこのようなことをすることができます

    TextView t1 = new TextView(this);
    t1.setText("balbla_1");
    t1.setTextAppearance(this, R.style.t1);
    RelativeLayout.LayoutParams t1_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    t1_params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);


    TextView t2 = new TextView(this);
    t2.setText("balbla_2");
    t2.setTextAppearance(this, R.style.t2);
    RelativeLayout.LayoutParams t2_params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    t2_params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);


    rel.addView(t1, t1_params);
    rel.addView(t2, t2_params);
于 2012-12-16T21:52:39.253 に答える
0

Linear Layout を試しましたか?お気に入り;

 <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/o1" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:text="@string/o2" />
  </LinearLayout>
于 2012-12-16T20:55:38.703 に答える