我在嵌套滚动视图中使用
列表视图
,但在ListView
中只能看到一项。我可以滚动到文本视图
(textContact)的末尾,但不能在列表视图
(listContact)中滚动。
这是. xml文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
... >
<android.support.design.widget.CoordinatorLayout
... >
<LinearLayout
...
android:orientation="vertical">
<android.support.v7.widget.Toolbar
... />
<android.support.v4.widget.NestedScrollView
... >
<LinearLayout
...
android:orientation="vertical">
<TextView
android:id="@+id/textContact"
... />
<LinearLayout
...
android:orientation="vertical">
<ListView
android:id="@+id/listContact"
... />
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</LinearLayout>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
... />
</android.support.v4.widget.DrawerLayout>
这里使用的小部件/控件是否有任何设计问题、兼容性问题或其他问题?
我认为,你的布局设计很糟糕,你应该重新设计它。通常,不应在另一个可滚动视图(如 NestedScrollView
或 ScrollView
)中具有像 ListView
这样的可滚动视图。你真的需要它吗?尝试更改它,展平视图结构,这个问题应该消失。
在 listview
上使用 ViewCompat.setNestedScrollingEnabled(),
你的问题应该得到解决。
您需要在NestedScrollView中启用以下两个属性,
<android.support.v4.widget.NestedScrollView xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
然后使用帮助程序类来扩展 ListView 宽度
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
public class Helper {
public static void getListViewSize(ListView myListView) {
ListAdapter myListAdapter = myListView.getAdapter();
if (myListAdapter == null) {
//do nothing return null
return;
}
//set listAdapter in loop for getting final size
int totalHeight = 0;
for (int size = 0; size < myListAdapter.getCount(); size++) {
View listItem = myListAdapter.getView(size, null, myListView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
//setting listview item in adapter
ViewGroup.LayoutParams params = myListView.getLayoutParams();
params.height = totalHeight + (myListView.getDividerHeight() * (myListAdapter.getCount() - 1));
myListView.setLayoutParams(params);
// print height of adapter on log
Log.i("height of listItem:", String.valueOf(totalHeight));
}
}
要在设置ListView适配器时使用助手类,
listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listview_array));
Helper.getListViewSize(listView);
PS:确保为您的项目添加了支持设计库。
compile 'com.android.support:design:23.4.0'
我想用ListView实现滚动刷新功能。此外,在同一布局文件中还有其他视图元素,如果列表为空,则会显示这些元素。这是我的布局文件。问题是,当我向下滚动,然后尝试向上滚动,而不是一直滚动到顶部,然后刷新它只是刷新那里,向上滚动是不起作用的。
嵌套滚动视图在向下滚动时滚动流畅,但在向上滚动时滚动缓慢。向上滚动时折叠工具栏(带有图像视图和框架布局)不会呈现其内容(保持空白)。我已经尝试了折叠工具栏中的每个标志。
我有底部的导航栏和视窗内的协调器布局,视窗内的每个片段都有自己的折叠工具栏, 但是对我不起作用。 我也不想做通过监听我嵌套的滚动视图(内部片段),因为它没有动画。 我的活动 其中一个片段(在内容视图中有一个嵌套的scrollview。我设置了它的布局行为) 这些链接不起作用在滚动上隐藏/显示底部导航视图 使用AppBarLayout在协调布局中滚动时显示/隐藏底部导航视图 当滚动底部导航栏不隐藏时
我正在活动页面中使用。因为应用程序栏下面有。但当我使用而不是时,它就不起作用了。如果我将放在内部,则不会展开
我的应用程序围绕一个HomeActivity,它在底部包含4个选项卡。这些选项卡中的每一个都是一个片段,所有的选项卡从一开始就被添加(而不是替换),并且在点击相应的选项卡时被隐藏/显示。 我的问题是,每当我更改tab时,我的卷轴的状态就会丢失。显示该问题的每个片段都使用(参见下面的示例)。 注意:由于某种原因,我的使用RecyclerView或ListView的片段保持了它们的滚动状态。 我读了几
我正在开发一个Android应用程序,其中我使用、和来使用折叠工具栏功能。 我在布局中使用在相同的布局中展开和折叠。当我试图从屏幕中心向上滚动时,它不起作用,但当我试图从屏幕右角向上滚动屏幕时,它会平滑滚动。 下面提到的是我的 xml 文件 layout.xml 理想的结果是,当我尝试从屏幕中心向上滚动时,它应该像我从手机右角向上滚动一样工作。 请观看下面提到的视频,以便更清楚地了解问题 http