2013-08-16 1 views
0

저는 동적 레이아웃에 스크롤 뷰를 추가했습니다. 상대 레이아웃의 높이를 고정 된 크기로 설정하면 스크롤보기가 작동합니다.안드로이드 - ScrollView는 상대적 레이아웃에서 작동하지 않습니다.

예 :

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true" > 

    <RelativeLayout 
     android:id="@+id/llcustomrow" 
     android:layout_width="match_parent" 
     android:layout_height="800dp" > 
    </RelativeLayout> 
</ScrollView> 

하지만이 RelativeLayout의 내가 wrap_content하는 RelativeLayout의 높이를 설정 O를 내가 동적으로 추가 그러나 많은 항목을 보유 할 수 있어야합니다. 그들은 화면을 가고되도록 내가 상대 레이아웃에 충분한 항목을 추가하면하지만있는 ScrollView 내가 동적으로 상대 레이아웃에

LinearLayout mLinearLayout; 
RelativeLayout rlcopy; 
RelativeLayout[] rArray = new RelativeLayout[20]; 
int counter = 0; 
RelativeLayout llcustomrow; 
RelativeLayout.LayoutParams paramsleft; 


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

    paramsleft = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
               RelativeLayout.LayoutParams.WRAP_CONTENT); 


    llcustomrow = (RelativeLayout)mLinearLayout.findViewById(R.id.llcustomrow); 

    for(int i = 0;i<=rArray.length-1;i++){ 
     rArray[i] = (RelativeLayout)View.inflate(getActivity(), R.layout.addworkoutlayout, null); 
      paramsleft.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
      paramsleft.setMargins(10, 0, 0, 0); 
      rArray[i].setLayoutParams(paramsleft); 

    } 
    Button bAdd = (Button) mLinearLayout.findViewById(R.id.bAddExcercise); 



    bAdd.setOnClickListener(new OnClickListener() {   
     @Override 
     public void onClick(View v) { 
       rArray[counter].setY(rArray[counter-1].getY() + (rArray[counter-1].getHeight() +25)); 

      llcustomrow.addView(rArray[counter]); 
      counter++; 

     } 
    }); 


    return mLinearLayout; 
} 

감사

+0

위젯을 추가 한 후 상대 레이아웃의 크기를 얻으려고했습니다. 그걸 확인하고 크기가 ScrollView를 포함하는 것보다 더 커 졌는지 확인하고 ofcourse –

답변

0

이유를 추가하고 방법

다음

가 등록 나던 RelativeLayout을 사용하고 있습니까? LinearLayout로 전환하는 것이 좋습니다.

0

match_parent

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 


     <RelativeLayout 
      android:id="@+id/outer_ll" 
      android:layout_width="match_parent" 
      android:layout_height="900dp" 
      android:background="#E7D687" 

      > 



     </RelativeLayout> 
     </ScrollView> 
+1

덕분에 작동하는지 확인해보십시오. 그러나 실제 레이아웃에 더 많은 것을 추가 할 때 높이를 변경해야합니다. –

+0

당신은 상대 레이아웃을 변경해야합니다. height가 고정되어 있기 때문에 "wrap_content"로 변경해야합니다. –

-2

변화에 대한 귀하의 RelativeLayout의의 layout_height을 작동이 시도.

문제가 해결됩니다.

+0

스크롤 뷰에 포함 된 RelativeLayout에서 match_parent를 layout_height로 설정할 수 없습니다. 경고를 생성합니다. –

관련 문제