Java – viewpagers in listview displays blank list items

[editor]: Thank you for all your meaningful answers. Now the problem is solved. Thank you for your help Similar problem: Android: I am unable to have viewpager wrap_ CONTENT

I'm trying to implement the UI of my application: I want a listview with viewpager for each row

This is my file:

MainActivity. java

package com.condi;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        setlistadapter(new Cardlistadapter(this,getFragmentManager()));
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main,menu);
        return true;
    }
}

Cardlistadapter. java

package com.condi;

import java.util.List;

import android.app.FragmentManager;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;

public class Cardlistadapter extends BaseAdapter {

    private Context context;
    private FragmentManager fragmentManager;
    private List<Profile> profiles;

    Cardlistadapter(Context context,FragmentManager fragmentManager) {
        this.context = context;
        this.fragmentManager = fragmentManager;
        this.profiles = new DatabaseHelper(context).getProfiles();
    }

    @Override
    public int getCount() {
        return profiles.size();
    }

    @Override
    public Profile getItem(int position) {
        return profiles.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position,View convertView,ViewGroup parent) {
        convertView = View.inflate(context,R.layout.profile_card,null);
        CardPagerAdapter mCardPagerAdapter = new CardPagerAdapter(
                fragmentManager);
        ViewPager viewPager = (ViewPager) convertView.findViewById(R.id.pager);
        viewPager.setAdapter(mCardPagerAdapter);
        viewPager.setId(R.id.pager);
        return convertView;
    }
}

profile_ card. XML (the problem comes from wrap_content)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dp"
        android:layout_marginLeft="6dp"
        android:layout_marginRight="6dp"
        android:layout_marginTop="4dp"
        android:background="@drawable/card_background"
        android:orientation="vertical" >

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>

</FrameLayout>

CardPagerAdapter. java

package com.condi;

import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v13.app.FragmentPagerAdapter;

public class CardPagerAdapter extends FragmentPagerAdapter {

    public CardPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0:
            return new Fragment1();
        case 1:
            return new Fragment2();
        }
        return null;
    }

    @Override
    public int getCount() {
        return 2;
    }
}

Fragment1. java

package com.condi;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment1 extends Fragment {

    public Fragment1() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
        return inflater.inflate(R.layout.preference_category,container,false);
    }
}

Fragment2. java

package com.condi;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Fragment2 extends Fragment {

    public Fragment2() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater,false);
    }
}

The database that provides the configuration file works well The problem is that I get an empty list with the correct number of items, but it doesn't show viewpager at all screenshot of my app

What on earth did I do wrong?

Solution

Try changing the height of the viewpager in XML wrap_ Content does not work

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>