2013-10-08 2 views
0

조각에 두 개의보기가 있습니다. 첫 번째 뷰는 weather.xml로 명명 된 onCreateView()에서 선언 된 기본 뷰이며 두 번째 뷰는 res/layout/weather_column.xml 프로젝트에있는 뷰입니다.안드로이드에서 프로그래밍 방식으로 기본보기에 사용자 정의보기 추가

weather_column.xml을 루프를 사용하여 프로그래밍 방식으로 weather.xml에 추가하려고합니다. 내가 루프를 수행 한 후 한 번만보기를 추가 할 수 있어요

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.util.Log; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.LinearLayout; 
import android.widget.LinearLayout.LayoutParams; 

public class WeatherFragment2 extends Fragment { 

private static final String TAG = WeatherFragment2.class.getSimpleName(); 
LinearLayout bottemLL; 
LayoutInflater layoutInflater; 
LayoutParams params ; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    params = new LayoutParams(
      LayoutParams.WRAP_CONTENT,  
      LayoutParams.WRAP_CONTENT 
    ); 

    params.gravity = Gravity.RIGHT; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.weather, container, false); 

    layoutInflater = inflater; 
    LinearLayout bottemLL = (LinearLayout) v.findViewById(R.id.bottem_ll); 

    addView(bottemLL); 


    return v; 
} 

private void addView(LinearLayout bottemLL2) { 
    View v ; 

    for (int i = 0; i < 6; i++) { 
     Log.e(TAG, "i=========="+i); 

     v = layoutInflater.inflate(R.layout.weather_column, null); 
     bottemLL2.addView(v, params); 
    } 
} 

} 

enter image description here

... 좋아하지만

마지막으로해야합니다.

도와주세요. 고맙습니다.

답변

0

당신이 무엇을 게시 코드는 실제로 당신의 LinearLayout에 6 개의보기를 추가합니다. 그래서 그 부분은 잘되어야합니다.

문제는 너무 커서 자신이 같은 컨테이너에 들어 가지 않는다고 생각합니다. 기본 XML-s를 수정하십시오.

레이아웃 파일을 보내 주시겠습니까?

+0

예, 자식이 너무 큽니다. 감사합니다 kupsef –

0

나는 항상 동일한 뷰를 추가하고 있다고 생각한다. 루프 내부에 새로운 뷰를 만들고 팽창시켜야한다.

0

이 시도 :

private void addView(LinearLayout bottemLL2) 
{ 
    View v ; 
    v = layoutInflater.inflate(R.layout.weather_column, null); 

    for (int i = 0; i < 6; i++) 
    { 
     Log.e(TAG, "i=========="+i); 
     bottemLL2.addView(v, params); 
    } 
} 
+0

오류받을 것입니다. 이 자식은 이미 두 번째 루프에서 뷰를 추가하기 전에 부모가 제거해야합니다. –

관련 문제