저는 동적 레이아웃에 스크롤 뷰를 추가했습니다. 상대 레이아웃의 높이를 고정 된 크기로 설정하면 스크롤보기가 작동합니다.안드로이드 - 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;
}
감사
위젯을 추가 한 후 상대 레이아웃의 크기를 얻으려고했습니다. 그걸 확인하고 크기가 ScrollView를 포함하는 것보다 더 커 졌는지 확인하고 ofcourse –