Adding bottom margin to ListView last element

眉间皱痕 提交于 2019-12-02 14:48:08

In your ListView, set a paddingBottom and clipToPadding="false".

  <ListView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingBottom="8dp"
      android:clipToPadding="false"
      android:scrollbarStyle="outsideOverlay"/>
  • This also works for RecyclerView.

  • Only use android:scrollbarStyle="outsideOverlay" if you want the scroll bar to not overflow into the padded area.

fullMoon

add an empty footer in your list like this:

TextView empty = new TextView(this);
empty.setHeight(150);
listview.addFooterView(empty);

you can also do it from code if you want, for example here I react to to EditText different situations:

   if(s.toString().length()>0)
   {
      contacts_lv.setClipToPadding(false);
      contacts_lv.setPadding(0,0,0,270*screenDensity);
   }
   else
   {
      contacts_lv.setClipToPadding(true);
      contacts_lv.setPadding(0,0,0,0);
   }

Clocksmith's answer is the best and pretty clever. You can also create an empty footer view.

Rohit Kumar

Add these two lines in your listView XML code:

android:transcriptMode="alwaysScroll"  
android:stackFromBottom="true"

Another solution might be that you make a mock view with certain height.

In your adapter in getViewCount return 2.

In getCount return yourData.size+1.

In getViewType check if the element is last element return 2;

Use this type in getView to populate the mockview.

I guess you want to add margin only to last item:

So you can do in this manner, in your getview method the index of the list item and check if its the last item, then progrmatically add margin to the view.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!