我有一个userEntries列表。每个条目都包含一个块,其中包含一些动态内容,在这种情况下,这是一个包含1-3个图像的viewpager。当我想让这些图像具有正确的高度时,我的问题就出现了。如果我将ViewPager高度设置为例如100dp,则会显示图像并且ViewPager按预期工作。但是,如果我旋转手机或使用较大的屏幕,图像将保持与100dp相同的宽度,从而限制其无法获得正确的宽度。在发生这种情况时,我想使用wrap_content,因此它调整其高度以便将图像填满其全宽,但是当我这样做时,布局被最小化。请参阅下面的屏幕和代码。ViewPager中的ImageView无法正确显示高度
CustomViewHolder.java < - 这个拥有该userentry
public void populateContentArea(int mListType, Context context){
switch (mListType){
case Constants.ListType.DATE_LIST:
DatingEntryModel dateUser = (DatingEntryModel)mUser;
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View datingContent = layoutInflater.inflate(R.layout.dating_picture_container, llUserEntryContent, true);
ViewPager datingPager = (ViewPager) datingContent.findViewById(R.id.datingPager);
datingPager.setAdapter(new DatingPictureAdapter(context, dateUser.activities));
TabLayout datingIndicator = (TabLayout) datingContent.findViewById(R.id.datingTabDots);
datingIndicator.setupWithViewPager(datingPager);
break;
default:
break;
}
}
dating_picture_container.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v4.view.ViewPager
android:id="@+id/datingPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<android.support.design.widget.TabLayout
android:id="@+id/datingTabDots"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_width="70dp"
android:layout_height="20dp"
app:tabIndicatorHeight="0dp"
app:tabPaddingBottom="10dp"
app:tabBackground="@drawable/tab_dot_selector"
app:tabGravity="center"/>
</RelativeLayout>
DatingPictureAdapter.java
public class DatingPictureAdapter extends PagerAdapter {
private Context mContext;
List<DatingActivity> mActivities;
public DatingPictureAdapter(Context context, List<DatingActivity> activities) {
mContext = context;
mActivities = activities;
}
@Override
public Object instantiateItem(ViewGroup collection, int position) {
DatingActivity activity = mActivities.get(position);
final ImageView datingBanner = new ImageView(mContext);
datingBanner.setAdjustViewBounds(true);
datingBanner.setScaleType(ImageView.ScaleType.FIT_CENTER);
UrlManager.loadDatingBannerGlide(mContext, activity.id).into(datingBanner);
collection.addView(datingBanner, 0);
return datingBanner;
}
@Override
public int getCount() {
return mActivities.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public void destroyItem(ViewGroup collection, int position, Object view) {
collection.removeView((View) view);
}
}
在一天结束时,设置高度的静态到10dp和然后调整根据图像宽度对我来说是最好的解决方案。感谢所有答复:)
你的视图页面的项目xml文件在哪里? –
我已经尝试过使用XML文件并将ImageView充满,但它产生了与创建ImageView并添加到viewpager相同的结果,所以我只是认为它是很多代码,它只是通过将ImageView添加到ViewPager。 –