所以在我的Android应用程序中,主要活动有标签,在每个标签中都有一个包含列表视图的片段。但由于某种原因,listview中的最后一项始终被切断。我四处寻找解决方案,但我还没找到。有什么建议吗?
主要活动布局
class LineItem < ActiveRecord::Base
validates :line_item, :presence => true, :uniqueness => true
end
使用ListView的片段
<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>
列出项目布局
<?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;
}
}
答案 0 :(得分:21)
将 android:paddingBottom="20dp"
这样的行放入Fragment XML文件的ListView项目中。调整 20dp 值,直到它看起来像你想要的那样。
由于一些奇怪的原因,它只是解决了问题,而且与更改的ListView的大小没有关系。不知何故,小填充强制ListView以不同的方式进行布局。
答案 1 :(得分:12)
在RecyclerView中添加以下行可以解决问题。
if
答案 2 :(得分:11)
使用RecyclerView而不是ListView。它肯定会起作用。滚动工具栏会剥离布局的底部空间。 ListView无法与 for (int i=0; i <information.count; i++) {
for (NSDictionary *feed in feeds) {
if ([feed[@"SignatureNumber"] containsObject:[information objectAtIndex:i]]) {
badIPCount++;
}else{
goodIPCount++;
}
}
}
完美配合。如果要滚动并查看完整项目,请使用RecyclerView或NestedScrollView而不是ListView。
如果您删除app:layout_behavior="@string/appbar_scrolling_view_behavior"
和
app:layout_behavior="@string/appbar_scrolling_view_behavior"
工具栏的可以看到带有完整项目的ListView。
因此,使用RecyclerView而不是ListView与app:layout_scrollFlags="scroll|enterAlways"
和app:layout_behavior="@string/appbar_scrolling_view_behavior"
。它将适用于滚动和布局行为。
答案 3 :(得分:-1)
对于仍有此问题的人,删除操作栏对我有用。
在AndroidManifest中:
android:theme="@style/AppTheme.NoActionBar">
同时从活动的布局XML中删除操作栏。
从Activity类中删除它:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);