0

linearlayout を動的に追加する際に問題があります。画面の上部に追加され、他の線形レイアウトをオーバーレイします。

ここでは、XML、コード、および結果を示します。

XML:

<TextView
    android:id="@+id/top_km"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:background="#888"
    android:gravity="top"
    android:textColor="#fff"
    android:textSize="30dip"
    android:layout_centerHorizontal="true"/>

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/top_km"
        android:id="@id/textLayout">

</RelativeLayout>

コード:

myLayout = (RelativeLayout) page.findViewById(R.id.textLayout);
LinearLayout linLayout = new LinearLayout(this);  
linLayout.setOrientation(LinearLayout.VERTICAL);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
myLayout.addView(linLayout);
LinearLayout hozLayout = new LinearLayout(this);
hozLayout.setOrientation(LinearLayout.HORIZONTAL);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
myLayout.addView(hozLayout);

結果: ここにリンクの説明を入力してください

ありがとう

4

3 に答える 3

2

RelativeLayoutaをホルダーとして使用しないでください。代わりにLinearLayoutwithを使用してください。orientation="vertical"

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/top_km"
    android:orientation="vertical"
    android:id="@id/textLayout" />

次にコードで

myLayout = (LinearLayout) page.findViewById(R.id.textLayout);

に続く

// rest of your code
于 2013-06-04T17:34:30.850 に答える
1

これは、適切な追加使用のためにRealativeLayoutを使用するためです1. st LayoutParams の RelativeLayout.LayoutParams 2. LayoutParams では、以下のフィールドを使用します

例:

RelativeLayout rl=new RelativeLayout(this);
LinearLayout ll1=new LinearLayout(this);
TextView tx1=new TextView(this);
tx1.setText("Test1");
ll1.addView(tx1);
rl.addView(ll1);
LinearLayout ll2=new LinearLayout(this);
TextView tx2=new TextView(this);
tx2.setText("Test1");
ll2.addView(tx1);
rl.addView(ll2);
RelativeLayout.LayoutParams lp2=(LayoutParams) ll2.getLayoutParams();

そして、lp2.addRuleを使用します

ここでいくつかの助け:

パラメータ verb ALIGN_WITH_PARENT_LEFT など、RelativeLayout によって定義される動詞の 1 つ。anchor アンカーとして使用する別のビューの ID、または真の場合はブール値 (TRUE として表される)、偽の場合は 0)。別の兄弟を参照しない動詞 (ALIGN_WITH_PARENT_BOTTOM など) には、-1 を使用します。

于 2013-06-04T17:18:50.070 に答える
0

XML ファイルに追加してからandroid:visibility="GONE"、コードで表示 ( View.VISIBLE) または非表示( ) にする方が簡単な場合がありますView.GONE

于 2013-06-04T17:19:12.223 に答える