반응형
런타임에 프로그래밍 방식으로 "android:layout_below"를 설정할 수 있습니까?
런타임에 RelativeLayout을 작성할 때 다음과 같은 값을 설정할 수 있습니까?android:layout_below계획적으로?
예:
RelativeLayout.LayoutParams params= new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.BELOW, R.id.below_id);
viewToLayout.setLayoutParams(params);
첫째, 코드는 높이와 너비를 지정하여 새로운 레이아웃 파라미터를 만듭니다.addRulemethod는 xml과 동등한 기능을 적절히 추가합니다.android:layout_below. 그럼 그냥 전화해봐요View#setLayoutParams당신이 그 파람들을 갖고 싶어하는 관점에서.
또는 뷰 현재 레이아웃 파라미터를 사용하여 다음과 같이 수정할 수 있습니다.
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) viewToLayout.getLayoutParams();
params.addRule(RelativeLayout.BELOW, R.id.below_id);
@jackofallcode 답변은 맞지만 한 줄로 쓸 수 있습니다.
((RelativeLayout.LayoutParams) viewToLayout.getLayoutParams()).addRule(RelativeLayout.BELOW, R.id.below_id);
infix 기능이 있는 Kotlin 버전
infix fun View.below(view: View) {
(this.layoutParams as? RelativeLayout.LayoutParams)?.addRule(RelativeLayout.BELOW, view.id)
}
그러면 다음과 같이 쓸 수 있습니다.
view1 below view2
또는 이를 일반 함수라고 부를 수도 있습니다.
view1.below(view2)
언급URL : https://stackoverflow.com/questions/3277196/can-i-set-androidlayout-below-at-runtime-programmatically
반응형
'programing' 카테고리의 다른 글
| AngularJS에서 $http 업로드 파일 진행률 (0) | 2023.10.04 |
|---|---|
| Postgre에 연결하려면 어떻게 해야 합니까?데이터베이스 이름을 지정하지 않은 SQL? (0) | 2023.10.04 |
| 시퀀스에 대한 Python 'enumerate'와 동일한 ES6은 무엇입니까? (0) | 2023.10.04 |
| PowerShell - HTML 구문 분석: 웹 사이트에서 정보 가져오기 (0) | 2023.10.04 |
| 선언문에서 조합을 초기화할 수 있습니까? (0) | 2023.10.04 |