Intereting Posts
Как захватить сетевой пакет в Android без использования каких-либо прав root Android: обновление версии БД и добавление новой таблицы Передача Android-приложений другому разработчику Новый SDHD Firebase 9 Android дает «Неверный ответ Idp» через некоторое время Почему требуется категория HOME? Рисовать круговую диаграмму в Android? Совместное использование библиотеки Android между несколькими приложениями Android с использованием Gradle PhoneGap для Android не принимает ключ 9 Android: Сгенерированный QR-код с использованием Zxing имеет поля (не подходит для области) В андроиде я могу сохранить поток RTSP в файл во время его воспроизведения? FindViewById возвращает нуль в фрагменте SingleTask launchMode в android не работает Почему Android Gradle preDexDebug «Источник и место назначения должны быть разными» не удалось построить? TagSoup против Jsoup против HTML Parser против HotSax против Безопасно хранить токены доступа / обновления Oauth2 в общих настройках в Android?

Последний элемент списка Listview отключен

Таким образом, в моем приложении для Android у меня есть вкладка основного действия, и на каждой вкладке есть фрагмент, содержащий список. Но по какой-то причине последний элемент в списке всегда отключается. Я искал решения, но я еще ничего не нашел. Какие-либо предложения?

Основной вид деятельности

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" app:tabGravity="fill"/> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> 

Фрагмент с ListView

 <?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:orientation="vertical"> <ProgressBar android:id="@+id/progressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" style="@style/Widget.AppCompat.ProgressBar" /> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" style="@style/Widget.AppCompat.ProgressBar"></ListView> </LinearLayout> </RelativeLayout> 

Макет списка позиций

 <?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="wrap_content" android:padding="2dp" android:layout_margin="5dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/title" android:textSize="20sp" android:textStyle="bold" android:typeface="normal" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/author" android:textSize="15sp" android:typeface="normal" android:layout_below="@+id/publishdate" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/publishdate" android:textSize="15sp" android:typeface="normal" android:layout_below="@+id/title" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </LinearLayout> 

Список класс адаптера

 package com.czhou.dailyprincetoniannewspaper.adapters; import android.content.ClipData; import android.content.Context; import android.graphics.Paint; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import com.czhou.dailyprincetoniannewspaper.NewspaperMetaObject; import com.czhou.dailyprincetoniannewspaper.R; import java.util.List; public class NewsListAdapter extends ArrayAdapter<NewspaperMetaObject> { static class ViewHolder { TextView author; TextView publishdate; TextView title; } private LayoutInflater inflater; List<NewspaperMetaObject> newsitems; public NewsListAdapter(Context context, List<NewspaperMetaObject> items) { super(context, R.layout.newslistitem, items); this.newsitems = items; inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (convertView == null) { convertView = inflater.inflate(R.layout.newslistitem, parent, false); viewHolder = new ViewHolder(); viewHolder.title = (TextView) convertView.findViewById(R.id.title); viewHolder.author = (TextView) convertView.findViewById(R.id.author); viewHolder.publishdate = (TextView) convertView.findViewById(R.id.publishdate); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } viewHolder.title.setText(newsitems.get(position).getArticleTitle()); viewHolder.title.setPaintFlags(Paint.UNDERLINE_TEXT_FLAG); viewHolder.publishdate.setText(newsitems.get(position).getArticlePublishDate()); viewHolder.author.setText(newsitems.get(position).getArticleAuthor()); System.out.println(viewHolder.publishdate.getText()); return convertView; } } 

Основной класс активности

 package com.czhou.dailyprincetoniannewspaper; import android.os.Bundle; import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.TabLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.ProgressBar; import android.widget.RelativeLayout; import java.util.ArrayList; import java.util.List; /** * Created by czhou on 11/21/2015. */ public class MainActivity extends AppCompatActivity { private Toolbar toolbar; private TabLayout tabLayout; private ViewPager viewPager; private ProgressBar mProgressBar; private CoordinatorLayout coordinatorLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); } private void setupViewPager(ViewPager viewPager){ ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new PUNewsFragment(), "News"); adapter.addFragment(new PUSportsFragment(), "Sports"); viewPager.setAdapter(adapter); } class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } } 

Solutions Collecting From Web of "Последний элемент списка Listview отключен"

Используйте RecyclerView вместо ListView. Это будет работать точно. Прокрутка панели инструментов перекрывает нижнее пространство вашего макета. ListView не будет работать отлично с app:layout_behavior="@string/appbar_scrolling_view_behavior" . Если вы хотите прокручивать и просматривать полные элементы, используйте RecyclerView или NestedScrollView вместо ListView.

Если вы удалите app:layout_behavior="@string/appbar_scrolling_view_behavior" и

 app:layout_scrollFlags="scroll|enterAlways" 

Панели инструментов вы можете увидеть ListView с полными элементами.

Итак, используйте RecyclerView вместо ListView с app:layout_behavior="@string/appbar_scrolling_view_behavior" и app:layout_scrollFlags="scroll|enterAlways" . Он будет работать с прокруткой и макетом.

Вставьте строку, подобную android:paddingBottom="20dp" в свой элемент ListView в XML-файле фрагмента. Отрегулируйте значение 20dp, пока оно не будет выглядеть так, как вы хотите.

По какой-то странной причине он просто исправляет проблему, и это не связано с изменением размера ListView. Каким-то образом небольшая прокладка заставляет ListView компоновать по-другому.

Добавление ниже строки в RecyclerView должно решить проблему.

 android:layout_marginBottom="?attr/actionBarSize" 

Для тех, кто все еще имеет эту проблему, удаление панели действий работало для меня.

Внутри AndroidManifest:

 android:theme="@style/AppTheme.NoActionBar"> 

Также удалите панель действий из XML-макета для Activity.

И удалите это из класса Activity:

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar);