我有一個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。 –