0

これが私のxmlです(基本的に2つのビューがあります:B相対[]内の線形[ A])

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/A"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content" >

<LinearLayout
android:id="@+id/B"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>

</<RelativeLayout>

のパラメーターを設定する必要がありますが、RelativeLayoutどのクラスに属すべきかわかりません (親がないため)。

SomethingLayout.LayoutParams p = new SomethingLayout.LayoutParams(w*10, h);
A.setLayoutParams(p);

誰かがこれをどのように行うことができるか教えていただければ幸いです。


Bこれを行う必要があるのは、幅を画面幅の 10 倍に設定したいからです。つまり、次のようになりますw*10

RelativeLayout.LayoutParams para = new RelativeLayout.LayoutParams(w*10, h);
B.setLayoutParams(para);

私がアニメーション化するBと、

ObjectAnimator animation2 = ObjectAnimator.ofFloat(B, "x", -w)

親ビューである がその幅を制限しているように、 の幅Bwではなく であることを示しています。w*10A

したがって、Aのパラメーターを設定すると問題を解決できることがわかりました。しかし、私はそれを行う方法がわかりません...

4

2 に答える 2

0

メソッド「setContentView(R.layout.A);」を呼び出すと、あなたの活動で。A の親の型であり、おそらく Framelayout です。

以下のようにコーディングできます。

setContentView(R.layout.A);
ViewGroup p = (ViewGroup) A.getParent();
if(p instanceof FrameLayout){
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(w*10, h);
    A.setLayoutParams(p);
}

私は中国人です。私の英語はあまり上手ではありません。文法上の間違いがあればご容赦ください。

于 2013-05-22T03:19:43.840 に答える
0

このようなものがあなたのために働くかどうか見てください

RelativeLayout.LayoutParams para = B.getLayoutParams();
para.width = w*10;
para.height = h;
B.setLayoutParams(para);
于 2013-05-22T03:24:18.413 に答える