하나의 LinearLayout
에 3 ViewPagers
을 사용하고 있습니다. 그리고 나는 ViewPager
의 높이를 wrap_content
으로 동적으로 설정하려고합니다. 내 조각은 ViewPager
에도 동적으로로드됩니다. 따라서 조각의 높이가 뷰 페이지의 높이보다 크면 뷰 페이지의 높이가 자동으로 증가해야합니다.조각의 내용 높이로 내용을 감싸기 위해 뷰 호출기 높이를 변경하십시오
레이아웃
무엇을 제안하십시오 같다?
하나의 LinearLayout
에 3 ViewPagers
을 사용하고 있습니다. 그리고 나는 ViewPager
의 높이를 wrap_content
으로 동적으로 설정하려고합니다. 내 조각은 ViewPager
에도 동적으로로드됩니다. 따라서 조각의 높이가 뷰 페이지의 높이보다 크면 뷰 페이지의 높이가 자동으로 증가해야합니다.조각의 내용 높이로 내용을 감싸기 위해 뷰 호출기 높이를 변경하십시오
레이아웃
무엇을 제안하십시오 같다?
<LinearLayout android:orientation="vertical">
<ViewPager />
<ViewPager />
<ViewPager />
</LinearLayout>
후 원하는 결과를 가져야
wrap_content
에 ViewPagers의 높이를 설정은 다음과 같이 구현 보인다 가정. 이 작업을 동적으로 수행 할 필요는 없습니다. 당신이 정말로 동적으로 그것을 할 수/필요를 원하는 경우 그렇지 않으면, 그냥 코드에서 다음에 ViewPager의 LayoutParams를 설정 한 다음의 LayoutParams 생성자
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
viewPager.setLayoutParams(lp);
매개 변수는 (폭, 높이)이며, 당신은을 변경해야 너비가 wrap_content가 아니길 원한다면 너비.
문제는 "wrap_content"가 View 호출기에서 작동하지 않는 것입니다. 는 여기에 솔루션입니다 :
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.View;
public class CustomViewPager extends ViewPager {
public CustomViewPager(Context context) {
super(context);
}
public CustomViewPager(Context context, AttributeSet attrs){
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int height = 0;
for(int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
if(h > height) height = h;
}
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
참조 : 지식을 공유하고 저를 해결하기 언급을 주저하지 말고, 그것을이다 Android: I am unable to have ViewPager WRAP_CONTENT
.
나는 그걸 시도했지만 그때 아무도 화면에 표시됩니다. 그들은 높이를 0으로 받고있다. 그리고 또한 내가 좀 더 긴 viewpager에서 textview 있어요 때문에 페이지 변경에 동적으로 변경할 필요가 – neeraj
레이아웃 코드를 표시 할 수 있습니까? –
같은 문제가 있습니다. 나는 화면 상에 아이템을 얻지 못한다. –