LinearLayout 매개 변수를 프로그래밍 방식으로 설정할 수 없습니다. 내가 시도한 모든 것, 나는이 정확한 예외를 얻는다.
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) outerLayout.getLayoutParams();
params.bottomMargin = 50;
outerLayout.setLayoutParams(params);
java.lang.ClassCastException: android.widget.AbsListView$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
왜 그런지는 모르겠지만, 나는 LinearLayout.LayoutParams를 뷰에서 가져올 수 없다. outerLayout
은 내 LinearLayout입니다. findViewById()를 사용하여 인스턴스화합니다. 나는 여러 가지를 가져 왔지만 행운은 없었다.
다음은 목록보기에서 하나의 항목을 나타내는 내 xml입니다. outer_item_layout
은 getLayoutParams()를 호출하는 레이아웃입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/outer_item_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:orientation="horizontal">
<TextView
android:id="@+id/modeName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_weight="3"
android:text="Medium Text"
android:textSize="18dp" />
<ImageView
android:id="@+id/dropdown_speed"
android:layout_width="23dp"
android:layout_height="23dp"
android:layout_gravity="center"
android:layout_marginRight="20dp"
android:background="?selectableItemBackgroundBorderless"
android:clickable="true"
android:src="@drawable/ic_dropdown"
tools:ignore="InvalidId" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/expandable_seekbar"
android:layout_width="match_parent"
android:layout_marginBottom="-50dip"
android:visibility="gone"
android:layout_height="50dip"
android:orientation="horizontal">
<SeekBar
android:id="@+id/custom_mode_speed_seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp" />
</LinearLayout>
레이아웃 게시 xml. –
아래쪽 여백을 프로그래밍 방식으로 설정하려고하는 이유는 무엇입니까? –
정말로 필요한 경우, 루트 LinearLayout 내에 다른 LinearLayout 컨테이너를 추가하고 조작 할 수 있습니다. –