2011-08-30 5 views

답변

3

예. 가능합니다. YOURLAYOUT.LayoutParams에 대한 자세한 내용은

http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html 을 사용하고 레이아웃 개체에 필요한 것을 지정하십시오. 당신이 setContentView();

뭔가처럼 전에 값을 변경 : 당신이 팽창 할

RelativeLayout rl = new RelativeLayout(this); 
     RelativeLayout.LayoutParams rlp= new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); 
     rlp.addRule(RelativeLayout.VISIBLE); //set the rules and parameters before you do setLayoutParams(); 
     rl.setLayoutParams(rlp); 
     setContentView(rl); 

또는 당신은 XML의 실제 레이아웃을 변경하려는 경우에

LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    View v = inflater.inflate(R.layout.main, null); 
    RelativeLayout rl = (RelativeLayout)v.findViewById(R.id.relativeLayout1); 
    RelativeLayout.LayoutParams rlp= new RelativeLayout.LayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT)); 
    rlp.addRule(RelativeLayout.VISIBLE); 
    rl.setLayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT)); 
    setContentView(rl); 
+0

두 가지 방법 모두 작동합니다. 나는 그들을 시험했다. 나는 안드로이드를 초기에 설정했다 : layout_width = "22px"그리고 높이는 동일하다. 그리고 그들은 일하는 것을 증명했습니다. :) –

1

당신이 할 수있는 실제로 애플리케이션 내에서 xml 레이아웃 파일을 변경하지 않습니다. 패키지화 된 레이아웃 파일은 읽기 전용입니다. 당신이 할 수있는 일 (그리고 이것이 니콜라가 제안한 것이라고 생각합니다)은 API를 사용하여 코드를 사용하여 레이아웃을 정의하거나 XML에서 일단 팽창 된 레이아웃을 수정하는 것입니다.

레이아웃을 정의하는 데이터를 계산하거나 검색하고 다음에 앱을 실행할 때의 데이터를 기억하려면 Android에서 제공하는 data storage methods 중 하나를 사용할 수 있습니다.