Android 는 addView 동적 으로 구성 요 소 를 추가 하 는 방법 을 사용 합 니 다.
그 중에서 추 가 된 레이아웃 은 주로 Relative Layout 형(상대 레이아웃)과 LinearLayout(선형 레이아웃)이 있 습 니 다.
추 가 된 구성 요 소 는 주로 텍스트 디 스 플레이 상자,편집 상자,단추 등 구성 요소 가 있 습 니 다.
다음은 우리 가 실현 할 것 이다.
우선,MainActivity.class 에 없 는 코드 를 삭제 하고 proctected void onCreate(Bundle saved InstanceState)함수 만 남아 서 레이아웃 파일 에 새 구성 요 소 를 추가 합 니 다.
1.addView 방법 소개
Android 에서 addView(ViewGroup view,index)는 지정 한 index 에 view 를 추가 합 니 다.레이아웃 View 의 addView 함 수 를 이용 하여 동적 으로 생 성 된 View 아 이 템 을 레이아웃 View 에 추가 할 수 있 습 니 다.
2.예시:
(1)먼저 레이아웃 파일 에 구성 요 소 를 추가 합 니 다.예 를 들 어 텍스트 하나,단추 두 개 를 추가 합 니 다.이 때 레이아웃 파일 에 레이아웃 항목
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
android:id="@+id/textview"/>
<LinearLayout
android:layout_below="@+id/textview"
android:id="@+id/linearlay_1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical"
>
</LinearLayout>
그리고 우 리 는 Activity 클래스 에 구성 요 소 를 추가 합 니 다.코드 는 다음 과 같 습 니 다.
/**
* , , Linerlayout orientation
* vertical , , View 。 View
* , ( :Linearlayout RelativeLayout , RelativeLayout )
* , LinearLayout , ! 。
*/
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// activity_main , R.id.lenearlay_1 id
LinearLayout linear=(LinearLayout) findViewById(R.id.linearlay_1);
// ,this
TextView tv=new TextView(this);
tv.setText(" ");
tv.setId(1);// ID, , R ,
linear.addView(tv);
// Button LinearLayout
Button b1 = new Button(this);
b1.setText(" ");
linear. addView ( b1 );
// Button 2 LinearLayout
Button b2 = new Button(this);
b2.setText(" ");
linear. addView ( b2 );
// LinearLayout Button 1
// linear. removeView ( b1 );
}
}
효 과 는 다음 그림 과 같다.그림 1 동적 추가 구성 요소-LinearLayout
(2)동적 레이아웃 추가:
*다음 의 예 는 레이아웃 을 동적 으로 추가 하 는 방법 을 소개 합 니 다.기본 내용 은 위의 코드 와 일치 하고 추 가 된 레이아웃 의 위 치 를 어떻게 제어 하 는 지 를 중시 합 니 다.
*레이아웃 의 위 치 를 제어 할 때 LayoutParam 클래스 를 사용 합 니 다.
*메모:위치 와 스타일 을 제어 할 때 레이아웃 과 컨트롤 을 사용 하 는 방법 은 같 습 니 다.
*/이번 에는 MainActivity 에서 만 작업 할 뿐 레이아웃 파일(.xml)과 관련 되 지 않 습 니 다.코드 는 다음 과 같 습 니 다.
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//////////////////////////////////////
// relative
RelativeLayout relative = new RelativeLayout(this);
relative.setBackgroundColor(Color.YELLOW);
// Button1 RelativeLayout
Button btn_r1 = new Button(this);
btn_r1.setText(" ");//
btn_r1.setId(24);
relative.addView(btn_r1);
// Button2 RelativeLayout
Button btn_r2 = new Button(this);
btn_r2.setText(" ");//
btn_r2.setId(25);
relative.addView(btn_r2);
// RelativeLayout
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
btn_r1.setLayoutParams(lp); ////
lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.RIGHT_OF, btn_r1.getId());
btn_r2.setLayoutParams(lp); ////
setContentView(relative);
}
}
효 과 는 다음 과 같다.그림 2 동적 레이아웃 추가-RelativeLayout
위의 소 개 를 배우 면 쉽게 레이아웃 인터페이스 를 만 들 수 있 습 니 다.버튼 이 든 다른 구성 요소 든 레이아웃 에 대해 서도 쉽게 레이아웃 을 사용 할 수 있 습 니 다.이상 은 안 드 로 이 드 에서 구성 요 소 를 어떻게 동적 으로 추가 하 는 방법 입 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.