2

PercentRelativeLayoutいくつかのイベントに基づいてJavaで動的にアイテムの幅のパーセンテージを変更したいのですが、これを見つけましたが、パーセンテージを置く場所が見つかりません:

mLinerLayout.setLayoutParams(new PercentRelativeLayout.LayoutParams());

私のxmlは次のようになります。

<android.support.percent.PercentRelativeLayout
    android:id="@+id/ad_prl_tags"
    android:layout_width="match_parent"
    android:layout_height="48dp">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/ad_rv_tags"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        app:layout_widthPercent="70%" />

    <!--Add Tags Button-->

    <LinearLayout
        android:id="@+id/ad_ll_add_tags_container"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_toRightOf="@id/ad_rv_tags">

        <ImageView
            android:id="@+id/itd_animatable_plus_iv"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />

        <EditText
            android:id="@+id/ad_et_add_tags_and_info"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />
    </LinearLayout>
</android.support.percent.PercentRelativeLayout>

Java で LinearLayout の幅のパーセンテージを 70% に、RecyclerView の幅を 30% に設定したいと考えています。

4

1 に答える 1

4

この方法で実用的に使用できます。

public static void setWidthPercent(View view, float width) {
    PercentLayoutHelper.PercentLayoutParams params =(PercentLayoutHelper.PercentLayoutParams) view.getLayoutParams();
    PercentLayoutHelper.PercentLayoutInfo info = params.getPercentLayoutInfo();
    info.widthPercent = width;
}
于 2016-10-07T10:50:17.257 に答える