0
2つのcardview要素のレイアウト幅をMATCH_PARENTと0dpの間で変更しようとしています。私は、XMLの変更を介してシナリオをシミュレートするとき、それは正しいですが、私はそれをプログラムで行うとき、期待どおりレンダリングされていません。linearlayout内のcardviewのレイアウト幅をプログラムでどのように設定しますか?
XML
<LinearLayout
android:id="@+id/lDates"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/card_margins"
android:layout_marginEnd="@dimen/card_margins"
android:layout_below="@id/lnrButtons"
android:orientation="horizontal">
<android.support.v7.widget.CardView
android:id="@+id/cardSectionA"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:cardElevation="0dp"
android:layout_marginEnd="@dimen/card_margins"
android:layout_marginBottom="@dimen/card_margins"
app:cardCornerRadius="4dp"
android:layout_weight="1">
<TextView
android:id="@+id/textLabelA"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/sample_value"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/cardSectionB"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:cardElevation="0dp"
android:layout_marginEnd="@dimen/card_margins"
android:layout_marginBottom="@dimen/card_margins"
app:cardCornerRadius="4dp"
android:layout_weight="1">
<TextView
android:id="@+id/textLabelB"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sample_value"/>
</android.support.v7.widget.CardView>
</LinearLayout>
javaの
//as-is scenario; cardSectionA and cardSectionB should be shown
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
cardSectionA.getLayoutParams().width,
LinearLayout.LayoutParams.WRAP_CONTENT
);
cardSectionA.setLayoutParams(params);
cardSectionB.setLayoutParams(params);
//should only show cardSectionA scenario
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
cardSectionA.setLayoutParams(params);
どうもありがとうございました。