我有一个带有一些布局的listView,我已经将这个问题简化为最大化,但它仍然无法正常工作。它发生了什么:
1)ListView的第一行正常工作:它是“可抓取的”,即我可以触摸它并向上或向下移动手指,滚动它。
2)listView中的所有其他行只能通过“ikonka”和“tojkat”ImageViews获取
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="bottom" >
<ImageView
android:focusable="false"
android:id="@+id/ikonka"
android:layout_width="@dimen/listview_album_art"
android:layout_height="@dimen/listview_album_art"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingBottom="@dimen/audio_player_icon_padding"
android:paddingTop="@dimen/audio_player_icon_padding"
android:scaleType="centerCrop" />
<ImageView
android:focusable="false"
android:id="@+id/akcja"
android:layout_width="@dimen/listview_album_art"
android:layout_height="@dimen/listview_album_art"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="@dimen/audio_player_icon_padding"
android:layout_marginTop="@dimen/audio_player_icon_padding"
android:scaleType="centerCrop" />
<ImageView
android:focusable="false"
android:id="@+id/trojkat"
android:layout_width="50dip"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@null"
android:scaleType="center"
android:src="@drawable/ic_action_overflow" />
</RelativeLayout>
适配器,为此问题而简化:
public class AdapterTrackowDlaZapytan extends CursorAdapter {
LayoutInflater inflater = null;
public AdapterTrackowDlaZapytan(FragmentActivity c, Cursor cu, int flags) {
super(c, cu, flags);
inflater = (LayoutInflater) c
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// nothing really interesting here, besides ViewHolder, but even without it it works as described
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup vg) {
ViewHolder holder;
View v = inflater.inflate(R.layout.test_directory_row, vg, false);
return v;
}
}
我认为这不重要,但ListView是由FragmentStatePagerAdapter创建的片段的一部分,FragmentStatePagerAdapter是属于Activity的片段的成员......
对我而言,它看起来像Android bug(第一行有效!),但我可能错了。有什么想法吗?
编辑:有趣的是,使用新的ImageView填充整个布局并没有改变任何东西 - 只能抓取“旧”ImageViews进行滚动。
编辑:更有趣:制作trojkat视图宽度match_parent,不会改变任何东西!仍然只能使用视图左侧和右侧的小区域进行滚动。
编辑:哦,我的!我找到了!发生的事情是,放置在当前片段下方的片段接收所有滚动事件!现在我将如何覆盖这种愚蠢的行为?!编辑和解决方案:这是使用PageTransformer时发生的错误!在这里寻找解决方案:ListView inside ViewPager won't scroll when applying a PageTransformer
答案 0 :(得分:0)
正如我所怀疑的,这个错误是Android错误,它发生在PageTransformer,见这里:
ListView inside ViewPager won't scroll when applying a PageTransformer
将此问题留给将来寻找答案的人会很好,因为这个错误可能会以非常奇怪的方式表现出来,并且猜测它是由PageTransformer造成的并不容易!