2014-12-19 3 views
0

Я пытаюсь отобразить индикатор выполнения в нижней части списка.Индикатор выполнения не отображается при использовании addFooterView

Когда я прокручиваю нижнюю часть списка, отображается больше элементов и отображается индикатор выполнения, индикатор выполнения скрыт, когда выполняется загрузка.

Но на данный момент я застреваю при отображении индикатора выполнения (не заботясь о том, чтобы отображать или скрывать его, пока они просты в обращении). Я применил множество решений в StackOverflow, но они просто не работали.

Это, как я добавить вид колонтитула в моем списке фрагмент:

public class ItemListFragment extends ListFragment { 
    protected View footerView; 

    public ItemListFragment() { 

    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     final LayoutInflater li = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     this.footerView = li.inflate(R.layout.progress_bar, null); 
     getListView().addFooterView(this.footerView); 
    } 
} 

Мой progress_bar.xml

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

    <ProgressBar 
     android:id="@+id/progress_bar" 
     style="?android:attr/progressBarStyleLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

Мой fragment_item_list.xml файл по умолчанию, созданный Android Studio (я пост на всякий случай, если это необходимо)

<ListView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

Если у вас есть решение, отправьте свой ответ. Благодаря!

ответ

0

Ну, я решил проблему, переключившись на использование фрагмента вместо ListFragment.

Мой фрагмент:

public class TestFragment extends Fragment { 
    static final String[] numbers = new String[] { "one", "two", "three", 
      "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", 
      "twelve", "thirteen", "fourteen", "fifteen", "sixteen", 
      "seventeen", "eighteen", "nineteen", "twenty", "twenty one", 
      "twenty two" }; 

    public TestFragment() { 

    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.test_list_view, container, false); 

     ListView listView = (ListView) rootView.findViewById(R.id.test_list_view); 

     View footer = View.inflate(getActivity().getApplicationContext(), R.layout.test_footer, null); 
     listView.addFooterView(footer); 

     ArrayAdapter adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, numbers); 

     listView.setAdapter(adapter); 

     return rootView; 
    } 
} 

test_list_view.xml

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

    <ListView 
     android:id="@+id/test_list_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 

test_footer.xml

<?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="match_parent" 
    android:orientation="vertical" > 

    <ProgressBar 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</LinearLayout>