2014-07-25 2 views
0

Java 코드를 사용하여 의 View 개체를 XML로 어떻게 바꿀 수 있습니까? 나는 아래에서 시도한 마지막 것을 포함시켰다. vynosy은 설정하려는 값이있는 속성입니다.보기에서 layout_weight를 (프로그래밍 방식으로) 변경하는 방법

View hospVyslLineAppColor = (View) view.findViewById 
          (R.id.hospodarsky_vysledok_line_appcolor); 

hospVyslLineAppcolor.setLayoutParams(new LinearLayout.LayoutParams(
      LayoutParams.MATCH_PARENT, 
      LayoutParams.WRAP_CONTENT, 
      Math.abs((float)vynosy))); 

내 XML :

<View 
    android:id="@+id/hospodarsky_vysledok_line_appcolor" 
    android:layout_width="match_parent" 
    android:layout_height="20dp" 
    android:layout_weight="69382" 
    android:background="#a8a8a8" /> 
+0

보기의 부모는 LinearLayout입니까? – Blackbelt

+0

네, 하나의 선형에서 2 개의 동일한 뷰를 가지고 있습니다 ... "가로 그라프"처럼 사용 – Tomino

+0

안녕하세요 Tormino, 어떤 목적으로 프로그래밍 방식으로 무게를 설정해야합니까? 그래프 종류의 것을 표시하려면? – Kailas

답변

0

당신은있는 LinearLayout

당신은 어떻게 Layout_weights 작업을 이해할 필요가
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT; 
params.weight = 1; 
0

이를 사용할 수 있습니다. 이는 둘 이상의보기가있는 경우에만 효과적입니다. 코드가 정확합니다. 하나 이상의 뷰를 추가해야합니다. 두 가지 모두 선형 레이아웃으로 선언되었습니다. 가중치를 적용 할 필요가있는 레이아웃.

View hospVyslLineAppColor = (View) view.findViewById (R.id.hospodarsky_vysledok_line_appcolor); 

     hospVyslLineAppcolor.setLayoutParams(new LinearLayout.LayoutParams(
     LayoutParams.MATCH_PARENT, 
     LayoutParams.WRAP_CONTENT, 
     Math.abs((float)vynosy))); // see to it the value of vynosy is less than 1 

View hospVyslLineAppColor1 = (View) view.findViewById (R.id.hospodarsky_vysledok_line_appcolor); 

     hospVyslLineAppColor1.setLayoutParams(new LinearLayout.LayoutParams(
     LayoutParams.MATCH_PARENT, 
     LayoutParams.WRAP_CONTENT, 
     (1 - Math.abs((float)vynosy)))); // Will complement the weight 

그리고 다시 프랑수아 XML 파일 : 나는이 당신을 도울 것이라고 생각

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" > 

      <!-- layout_height is 0dp as height is to be set by weight factor --> 
      <View 
       android:id="@+id/hospodarsky_vysledok_line_appcolor" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="0.4" 
       android:background="#a8a8a8" /> 

      <!-- layout_height is 0dp as height is to be set by weight factor --> 
      <View 
       android:id="@+id/hospodarsky_vysledok_line_appcolor1" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="0.6" 
       android:background="#a8a8a8" /> 
     </LinearLayout> 
0

... Set Width Programatically on SO

하지만 난 이 속성을 변경할 수이 아니라고 생각 프로그래밍 방식으로 구현할 수 있지만 새 속성 내에서 새 레이아웃 (일반적으로보기)을 설정할 수만 있습니다.

관련 문제