Listview по-прежнему доступен для кликов, хотя он заменяется щелчком фрагмента

У меня есть следующая проблема: я разрабатываю приложение, используя: 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">
 </android.support.v4.view.viewpager></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">

 </imageview></relativelayout>

Итак, вот в чем проблема: я правильно отобразил список, а adv_image поверх него. Когда я нажимаю на один элемент своего списка, я могу видеть элемент так, как он должен отображаться. (Это линейная компоновка с представлением изображения и описанием под видом прокрутки). НО Когда я нажимаю изображение (которое не доступно для клика)! отображается другой элемент предыдущего списка. Что заставляет меня предположить, что Listview все еще существует (позади моей статьи? Странно). И даже если я немного щелкнул над изображением статьи, он вызывает URL-адрес 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..but, мне все еще не удалась..

Заранее спасибо!

1 ответ

Элементы, которые появляются позже в XML, будут размещены выше, поэтому в XML, который вы показали выше, ListView появится над ImageView. Если вы хотите, чтобы ImageView был сверху, замените их порядок.

Несвязанные примечания:

1) fill_parent идентичен match_parent (но match_parent является предпочтительным)

2) Вам нужно только префикс id с + в первый раз, когда он встречается в AXML (вы сделали это дважды для adv_image).

licensed under cc by-sa 3.0 with attribution.