Я разрабатываю приложение. В своем приложении я использую Listview для отображения данных с помощью синтаксического анализа dom, я хочу, чтобы нижний колонтитул в списке, когда я нажимал нижний колонтитул, добавлял дополнительные данные в представление списка, я прикреплял изображение, я хотел бы этот дизайн и Пожалуйста, обратитесь к image1 и imgae2.Я упоминаю нижний колонтитул в красном прямоугольнике
Fig1-Footer, как "Больше новостей"
Fig2-Добавить дополнительные 10 записей, добавленных в список
android
android-listview
footer
Джонник
источник
источник
NOTE: Call this before calling setAdapter. This is so ListView can wrap the supplied cursor with one that will also account for header and footer views.
Ответы здесь немного устарели. Хотя код остался прежним, есть некоторые изменения в поведении.
public class MyListActivity extends ListActivity { @Override public void onCreate(Bundle savedInstanceState) { TextView footerView = (TextView) ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_view, null, false); getListView().addFooterView(footerView); setListAdapter(new ArrayAdapter<String>(this, getResources().getStringArray(R.array.news))); } }
Информация о
addFooterView()
методеБольшинство приведенных выше ответов подчеркивают очень важный момент -
С Китката это изменилось.
Документация
источник
Я знаю, что это очень старый вопрос, но я погуглил здесь и обнаружил, что полученный ответ не удовлетворяет на 100%, потому что, как упоминалось в gcl1 - таким образом, нижний колонтитул на самом деле не является нижним колонтитулом экрана - это просто "надстройка" "в список.
Итог - для тех, кто может найти здесь свой путь в Google - я нашел здесь следующее предложение: Фиксированный и всегда видимый нижний колонтитул под ListFragment
Попробуйте сделать следующее, где акцент делается на кнопке (или любом элементе нижнего колонтитула), указанной первой в XML, а затем список добавляется как «layout_above»:
<RelativeLayout> <Button android:id="@+id/footer" android:layout_alignParentBottom="true"/> <ListView android:id="@android:id/list" **android:layout_above**="@id/footer"> <!-- the list --> </RelativeLayout>
источник
Если ListView является дочерним элементом ListActivity:
getListView().addFooterView( getLayoutInflater().inflate(R.layout.footer_view, null) );
(внутри onCreate ())
источник
Действие, в котором вы хотите добавить нижний колонтитул списка, и я также создал событие при щелчке нижнего колонтитула списка.
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView list_of_f = (ListView) findViewById(R.id.list_of_f); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.web_view, null); // i have open a webview on the listview footer RelativeLayout layoutFooter = (RelativeLayout) view.findViewById(R.id.layoutFooter); list_of_f.addFooterView(view); } }
activity_main.xml
<?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="match_parent" android:background="@drawable/bg" > <ImageView android:id="@+id/dept_nav" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/dept_nav" /> <ListView android:id="@+id/list_of_f" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/dept_nav" android:layout_margin="5dp" android:layout_marginTop="10dp" android:divider="@null" android:dividerHeight="0dp" android:listSelector="@android:color/transparent" > </ListView> </RelativeLayout>
источник
В этом вопросе лучший ответ мне не подходит. После этого я нашел этот метод для отображения нижнего колонтитула списка,
LayoutInflater inflater = getLayoutInflater(); ViewGroup footerView = (ViewGroup)inflater.inflate(R.layout.footer_layout,listView,false); listView.addFooterView(footerView, null, false);
И создайте новый макет с вызовом footer_layout
<?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"> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Done" android:textStyle="italic" android:background="#d6cf55" android:padding="10dp"/> </LinearLayout>
Если не работает, обратитесь к этой статье, послушайте
источник
вы можете использовать stackLayout, внутри этого макета вы можете поместить список в рамку, например:
<StackLayout VerticalOptions="FillAndExpand"> <ListView ItemsSource="{Binding YourList}" CachingStrategy="RecycleElement" HasUnevenRows="True"> <ListView.ItemTemplate> <DataTemplate> <ViewCell > <StackLayout Orientation="Horizontal"> <Label Text="{Binding Image, Mode=TwoWay}" /> </StackLayout> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> <Frame BackgroundColor="AliceBlue" HorizontalOptions="FillAndExpand"> <Button Text="More"></Button> </Frame> </StackLayout>
вот результат:
источник