我有一个包含2个cardview的片段,其中包含多个控件.
在第二张cardview 下面我有一个recyclerview,这很完美.
问题是recyclerview从屏幕底部开始,滚动recylcerview非常小.
以前使用过listview,这使我保持适合你的内容,从而立即滚动屏幕,但recylclerview不能.
当我在recyclerview中滚动时,如何进行控制,就像视差效果一样?
编辑:更清楚,想象一个片段中的2张卡片,这些占据屏幕的80%,其中上面是一个带有100个项目列表的回收者视图,但是卷轴是如此微小......列表视图让我适应"内容"并立即滚动整个屏幕.
这是我的XML布局:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/svScroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<include
android:id="@+id/cvCampos1"
layout="@layout/ctlcabeceralibreta" />
<include
android:id="@+id/cvCampos2"
layout="@layout/ctlcabeceralibreta2" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rvRegistros"
android:layout_width="fill_parent"
android:layout_height="1000dp"
android:layout_below="@id/cvCampos2"
android:scrollbars="vertical" />
</RelativeLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
这是截图:

android android-appcompat android-layout android-cardview android-recyclerview
我试图显示嵌套的recyclerview但不显示子项.我想在所有子视图中显示不同的项目.我没有收到错误,但视图没有刷新.
这是我的代码可以任何一个帮助.
谢谢
public class MainActivity extends ActionBarActivity {
RecyclerView recyclerView;
RootAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter = new RootAdapter(this);
recyclerView = (RecyclerView) findViewById(R.id.recyclerRoot);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(adapter);
}
private class RootAdapter extends RecyclerView.Adapter<RootAdapter.RootViewHolder> {
private final LayoutInflater inflater;
String[] _items = new String[]{"ITEM 1", "ITEM 2", "ITEM 3", "ITEM 4"};
public RootAdapter(Context context)
{
inflater = LayoutInflater.from(context);
}
@Override
public RootViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = inflater.inflate(R.layout.root_row, viewGroup, false);
RootViewHolder rvi = …Run Code Online (Sandbox Code Playgroud)
在新的RecyclerView中,我们可以使用wrap_content高度(或宽度).所以谷歌修复了错误 - https://code.google.com/p/android/issues/detail?id=74772
但最终并非一切都很顺利.
从RecyclerView中删除项目时,我尝试使用消失的动画.所以我使用适配器的方法 - notifyItemRemoved(int)与任何参数和RecyclerView导致NullPointerException.
Xml代码:
...
<RecyclerView
android:id="@+id/RecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:overScrollMode="always"/>
...
Run Code Online (Sandbox Code Playgroud)
日志:
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
at android.support.v7.widget.SimpleItemAnimator.animateDisappearance(SimpleItemAnimator.java:78)
at android.support.v7.widget.RecyclerView.animateDisappearance(RecyclerView.java:3246)
at android.support.v7.widget.RecyclerView.access$700(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$4.processDisappeared(RecyclerView.java:422)
at android.support.v7.widget.ViewInfoStore.process(ViewInfoStore.java:231)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep3(RecyclerView.java:3086)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2914)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3277)
at android.view.View.layout(View.java:14015)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14015)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1021)
at android.view.View.layout(View.java:14015)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14015)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14015)
at android.view.ViewGroup.layout(ViewGroup.java:4373)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14015) …Run Code Online (Sandbox Code Playgroud) java android android-layout recycler-adapter android-recyclerview
我已经尝试到了什么:
呼唤 measure()
tv.measure(0, 0);
int height = tv.getMeasuredHeight();
Run Code Online (Sandbox Code Playgroud)measure()以指定的尺寸/模式进行呼叫
int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(99999, View.MeasureSpec.AT_MOST);
int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
tv.measure(widthMeasureSpec, heightMeasureSpec);
int height = tv.getMeasuredHeight();
Run Code Online (Sandbox Code Playgroud)呼唤 getTextBounds()
Rect bounds = new Rect();
tv.getPaint().getTextBounds(tv.getText().toString(), 0, tv.getText().length(), bounds);
int height = bounds.height();
Run Code Online (Sandbox Code Playgroud)先打电话measure()再打电话getTextBounds()
getLineCount() * getLineHeight()似乎没有任何工作。它们都返回不正确的值(容器视图的高度不正确-太小或太大)
关于如何计算这个简单事情的想法?
解决了检查下面的答案......
所以我想为我的Android应用程序创建一个评论功能,我想在recyclerview中显示评论,然后在recyclerview下面有一个按钮和textview来添加评论.我想让recyclerview具有一定的高度,如果有很多评论,可以滚动它,因为我不希望用户必须向下滚动屏幕才能找到添加按钮.
我无法让它工作,所以我想知道是否有其他人有这个问题.
我有所有适配器和所有设置,我只是在使用recyclerview时遇到问题.
谢谢.
我不清楚我想要完成什么.我正在尝试创建一个cardview,它将显示所有评论和添加新评论的能力.recyclerview将占据高度的大约80%,然后最后20%用于edittext和按钮.
我的XML(滚动到最后的cardview,其中包含recyclerview)
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/scrollview">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ProfilePageActivity"
>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/profilepagetoolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
android:minHeight="?attr/actionBarSize">
</android.support.v7.widget.Toolbar>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:layout_marginTop="35dp"
android:layout_below="@+id/profilepagetoolbar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:id="@+id/aboutCard">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="300dp"
android:gravity="center_vertical"
android:orientation="vertical"
android:layout_alignTop="@+id/aboutCard"
android:focusable="true"
android:focusableInTouchMode="true">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="-60dp"
android:gravity="center_vertical"
android:maxLines="1"
android:textColor="@color/text"
android:textSize="20sp"
android:text="ABOUT" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/dividers" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="10dp">
<ImageView
android:id="@+id/nameicon"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_margin="8dp"
android:transitionName="appIcon"
android:background="@drawable/ic_account_circle_black_24dp"/> …Run Code Online (Sandbox Code Playgroud) 我在一个 android 应用程序中工作,我需要构建一个垂直滚动列表,每个项目也是一个水平列表。然而,每个项目都有其独立的水平滚动。甚至有些项目不能有。
我一直在寻找解决方案,但我只看到垂直或水平列表。或者像 TwoWayView 中的网格。
我正在寻找类似于下图中的组合:
这在Android中可能吗?因为我的数据是一个数组数组。
先感谢您。
android horizontal-scrolling vertical-scrolling android-recyclerview
我试着按照这个如何使用自定义的SO答案LinearLayoutManager,但我的嵌套RecyclerView根本没有显示.
RecyclerView detailsRecyclerView = (RecyclerView) dialog.findViewById(R.id.category_dish_dialog_recycler_view);
detailsRecyclerView.setHasFixedSize(true);
LinearLayoutManager layoutManager = new LinearLayoutManager(CategoryActivity.this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
detailsRecyclerView.setLayoutManager(layoutManager);
DishDetailsAdapter detailsAdapter = new DishDetailsAdapter(dish.getDishOptions(), CategoryActivity.this);
detailsRecyclerView.setAdapter(detailsAdapter);
detailsAdapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
请注意,子/嵌套的RecyclerView在里面OptionsViewHolder:
public class DishDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<DishOption> options;
private Context context;
private SharedData sharedData = SharedData.getInstance();
public DishDetailsAdapter(List<DishOption> detailsList, Context parentContext) {
options = detailsList;
context = parentContext;
sharedData.setMainFont(context);
sharedData.setSecondaryFont(context);
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view …Run Code Online (Sandbox Code Playgroud) android android-layout android-adapter android-activity android-recyclerview
我RecyclerView在我的程序中使用,面对一些小问题,我相信你们中的一些人已经面对并解决了所有这些问题.
Separator color:使用DividerItemDecoration.java显示Items之间的分隔符,但如果我想更改分隔线颜色(如:默认为白色),则不知道在哪里进行更改
Clickable Row:点击仅在我连续点击文本时有效,但我想允许用户点击此链接后的任何地方(如:listview)
Wrap RecyclerView :我在recyclerview中只有两个记录,但它消耗全高(我想根据RecyclerView中的记录包装它,如:listview)
Ripple Effect:每当我点击RecyclerView中的任何项目时都没有获得RippleEffect,而当我点击列表项目获得Ripple效果时
RecyclerView Item Animation:当我点击RecyclerView中的任何项目时,如何实现动画效果
fragment_main.xml: -
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/btn_rounded"/>
Run Code Online (Sandbox Code Playgroud)
adapter_main.xml: -
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textTitle"
style="@style/AppTheme.ListTextView"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
styles.xml: -
<style name="AppTheme.ListTextView" parent="android:Widget.Material.TextView">
<item name="android:gravity">left</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:padding">10dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
btn_rounded.xml: -
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#008f8471"/>
<stroke android:width="2dp" android:color="#ffffff" />
<corners android:radius="10dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
MainAdatper.java:-
@Override
public …Run Code Online (Sandbox Code Playgroud) android android-5.0-lollipop recycler-adapter android-recyclerview