
单击按钮时,AndroID应用程序向下滚动到该项目,但不显示整个项目,仅部分显示:http://i.stack.imgur.com/8kuq0.png
我期待如下:http://i.stack.imgur.com/k0A5N.png
看起来应用程序需要滚动的数量与Appbar大小相同,以显示整个视图.如果我删除下面的布局文件中的滚动标志,我会得到预期的行为.
我做错了什么?
更新(2016年1月12日):我已经更新了图片,因此它们更大了.此外,正如我在Herry的回复中所写,我怀疑VIEw.requestRectangleOnScreen()是否是正确的调用方法,或者我应该使用不同的布局,然后使用nestedScrollVIEw.
我的活动编码如下:
package com.example.sij.coordinatorlayoutBUG;import androID.graphics.Rect;import androID.os.Bundle;import androID.os.Handler;import androID.os.Looper;import androID.support.v7.app.AppCompatActivity;import androID.support.v7.Widget.Toolbar;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.TextVIEw;public class MainActivity extends AppCompatActivity { TextVIEw itemToNavigateto; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); Toolbar toolbar = (Toolbar) findVIEwByID(R.ID.toolbar); setSupportActionbar(toolbar); itemToNavigateto = (TextVIEw)findVIEwByID(R.ID.itemToNavigateto); button navigatorbutton = (button)findVIEwByID(R.ID.navigator_button); navigatorbutton.setonClickListener(navigatetoItemListener()); } VIEw.OnClickListener navigatetoItemListener() { return new VIEw.OnClickListener() { @OverrIDe public voID onClick(final VIEw v) { new Handler(Looper.getMainLooper()).post(new Runnable() { @OverrIDe public voID run() { itemToNavigateto.requestRectangleOnScreen( new Rect( 0,itemToNavigateto.getWIDth(),itemToNavigateto.getHeight())); } }); } }; }} 和布局文件:
<?xml version="1.0" enCoding="utf-8"?><androID.support.design.Widget.CoordinatorLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:app="http://schemas.androID.com/apk/res-auto" 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.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" /> </androID.support.design.Widget.AppbarLayout> <androID.support.v4.Widget.nestedScrollVIEw androID:layout_wIDth="match_parent" androID:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_vIEw_behavior"> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical"> <button androID:ID="@+ID/navigator_button" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/scroll_to_item" /> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/item1"/> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/lorem_ipsum" androID:paddingBottom="20dp"/> <!-- Items 2 to 5 omitted for brevity --> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/item6"/> <TextVIEw androID:ID="@+ID/itemToNavigateto" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="@string/lorem_ipsum" androID:paddingBottom="20dp"/> </linearLayout> </androID.support.v4.Widget.nestedScrollVIEw></androID.support.design.Widget.CoordinatorLayout>解决方法 你需要添加androID:fillvIEwport =“true”
<androID.support.v4.Widget.nestedScrollVIEw androID:layout_wIDth="match_parent" androID:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_vIEw_behavior" androID:fillVIEwport="true">总结
以上是内存溢出为你收集整理的android – 在CoordinatorLayout中滚动查看仅显示部分视图全部内容,希望文章能够帮你解决android – 在CoordinatorLayout中滚动查看仅显示部分视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)