下面列出了怎么用android.support.v7.widget.ViewStubCompat的API类实例代码及写法,或者点击链接到github查看源代码。
private void addIndicator() {
if (mIndicatorRes != -1) {
ViewStubCompat viewStub = (ViewStubCompat) mIndicatorsContainer.findViewById(R.id.pageIndicator);
viewStub.setLayoutResource(mIndicatorRes);
viewStub.setOnInflateListener(new ViewStubCompat.OnInflateListener() {
@Override
public void onInflate(ViewStubCompat stub, View inflated) {
setViewPagerToPageIndicator();
}
});
View view = viewStub.inflate();
view.setVisibility(mPageIndicatorVisibility ? View.VISIBLE : View.GONE);
}
}
private void inflateIndicatorContainer(final View view) {
final ViewStubCompat indicatorContainerStub = (ViewStubCompat) view.findViewById(R.id.indicatorContainer);
// set gravity
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) indicatorContainerStub.getLayoutParams();
params.gravity = mIndicatorContainerGravity;
indicatorContainerStub.setLayoutParams(params);
indicatorContainerStub.setLayoutResource(mIndicatorContainer);
indicatorContainerStub.setOnInflateListener(new ViewStubCompat.OnInflateListener() {
@Override
public void onInflate(ViewStubCompat stub, View inflated) {
// there must be predefined ids
if (inflated.findViewById(R.id.leftIndicator) == null) {
throw new RuntimeException(getString(R.string.exception_left_indicator_id));
} else if (inflated.findViewById(R.id.rightIndicator) == null) {
throw new RuntimeException(getString(R.string.exception_right_indicator_id));
} else if (inflated.findViewById(R.id.pageIndicator) == null) {
throw new RuntimeException(getString(R.string.exception_page_indicator_id));
}
// check indicators instanceof
else if (!(inflated.findViewById(R.id.leftIndicator) instanceof LeftToggleIndicator)) {
throw new RuntimeException(getString(R.string.exception_previous_indicator_instanceof));
} else if (!(inflated.findViewById(R.id.rightIndicator) instanceof RightToggleIndicator)) {
throw new RuntimeException(getString(R.string.exception_next_indicator_instanceof));
}
mIndicatorsContainer = inflated;
// must be initialized after inflating indicator container
mRightIndicator = (RightToggleIndicator) mIndicatorsContainer.findViewById(R.id.rightIndicator);
mLeftIndicator = (LeftToggleIndicator) mIndicatorsContainer.findViewById(R.id.leftIndicator);
mRightIndicator.setListener(EasyIntroCarouselFragment.this);
mRightIndicator.withDisabled(mRightIndicatorEnabled);
mLeftIndicator.setListener(EasyIntroCarouselFragment.this);
mLeftIndicator.withDisabled(mLeftIndicatorEnabled);
addIndicator();
updateToggleIndicators();
}
});
indicatorContainerStub.inflate();
}
public static BaseDSL.ViewClassResult viewStubCompat() {
return BaseDSL.v(ViewStubCompat.class);
}
public static Void viewStubCompat(Anvil.Renderable r) {
return BaseDSL.v(ViewStubCompat.class, r);
}
public static Void onInflate(ViewStubCompat.OnInflateListener arg) {
return BaseDSL.attr("onInflate", arg);
}