我有以下问题:
我使用以下方式开发应用:
public class MainActivity extends FragmentActivity implements ActionBar.TabListener
这是使用ViewPager
。所以最初的main_activity.xml是
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdge="none" >
<FrameLayout
android:id="@+id/main_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</FrameLayout>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="fill_parent" >
</FrameLayout>
</RelativeLayout>
,framgent_container.xml包含以下内容
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/items_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/adv_image"
android:layout_width="fill_parent"
android:layout_height="56dp"
android:src="@drawable/no_adv" />
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/adv_image" />
</RelativeLayout>
所以这是问题所在: 我正确显示列表,并在其顶部显示adv_image。当我点击列表中的一个项目时,我可以看到应该显示的项目。 (是一个线性布局,在滚动视图中包含图像视图和描述)。 的 BUT 当我点击图像视图(不可点击)时! 显示上一个列表中的另一个项目。这让我觉得Listview仍然存在(在我的文章后面?很奇怪)。即使我点击文章图片上方的一点点,它也会触发adv_image网址,该网址仅存在于列表视图中而不存在于此片段中。
用文章片段替换列表视图的代码如下。
public class ArticlesListFragment extends ListFragment {
onCreateView膨胀以下
View rootView = inflater.inflate(R.layout.items_list, container, false);
具有以下功能
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
Fragment fragment = null;
Bundle args = new Bundle();
fragment = new Article();
args.putString("unique_id", ((ArticleItem) v.getTag()).ID);
fragment.setArguments(args);
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.addToBackStack("HomePage");
ft.replace(R.id.fragment_container, fragment);
ft.commit();
}
所以任何想法?????我试图替换几个不同的东西onitemclick ..但我还没有运气..
提前致谢!
答案 0 :(得分:0)
稍后出现在XML中的元素将被放置得更高,因此在上面显示的XML中,ListView将出现在ImageView上方。如果您希望ImageView位于顶部,请交换订单。
无关的说明:
1)fill_parent
与match_parent
相同(但首选match_parent
)
2)您只需要在第一次使用+
时为adv_image
添加前缀(在{{1}}已经完成两次)。