我尝试使用ViewPager作为ListView中的行,但是得到一个奇怪的行为 - 只有第一行有效,但是当我滚动列表时它会消失.当我滚动一个空行时,突然看到上面的行.似乎Android创建了一个单一的寻呼机并将其用于所有行.
这是我在启动应用程序时看到的内容:

这是我的行布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:orientation="vertical"
android:paddingBottom="2dp" >
<TextView
android:id="@+id/textViewFriendName"
style="@style/TextStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/myFriendsBg"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:text="TextView" />
<View style="@style/DividerHorizontalStyle_gray" />
<android.support.v4.view.ViewPager
android:id="@+id/pagerMyFriendHabits"
android:layout_width="match_parent"
android:layout_height="@dimen/DefaultImageHeight" />
<View style="@style/DividerHorizontalStyle" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的List适配器:
public class MyFriendsAdapter extends BaseAdapter implements OnClickListener {
private ArrayList<UiD_UserFriend> mItems;
private Context mContext;
private FragmentManager mFragmentManager;
public MyFriendsAdapter(Context context, ArrayList<UiD_UserFriend> items, FragmentManager fragmentManager) {
mContext = context;
mItems = items;
mFragmentManager = fragmentManager;
}
@Override
public int getCount() {
return …Run Code Online (Sandbox Code Playgroud) android listview android-widget android-layout android-fragments
我已经阅读了很多关于这个问题的相关问题.然而,他们都没有得到回答.我试图在寻呼机内有两个布局ViewPager的ListView地方的每一行添加一个.我相信这是可行的,因为SwipeListView.
现在我已经实现了它.但是,显示空白页面,中间有一条线.没有行出现.

这是我的代码:
MainActivity + ArrayAdapter
public class MainActivity extends Activity {
ListView list;
String[] heros;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
heros = getResources().getStringArray(R.array.heros);
list = (ListView) findViewById(R.id.listView1);
list.setAdapter(new CustomAdapter(this, heros));
}
public class CustomAdapter extends ArrayAdapter<String>
{
String[] heros;
Context context;
public CustomAdapter(Context context, String[] heros) {
super(context, R.layout.pager_item_list, R.id.listView1, heros);
// TODO Auto-generated constructor stub
this.heros = heros;
this.context = context;
}
@Override
public View getView(int position, View convertView, …Run Code Online (Sandbox Code Playgroud)