Ron*_*kar 6 android android-scrollbar android-recyclerview
我正在研究Horizontal RecyclerView的简单演示.
我想显示滚动条和recyclerview.所以,我已经加入android:scrollbars="horizontal"和android:scrollbarSize="5dp"XML格式.
我能够获得滚动条,但它显示在底部.我想要实现的是将它显示在Top上.我发现了一些像这样的问题,但它们都不适用于水平RecyclerView +顶部滚动条.
这是我到目前为止尝试过的代码:
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:isScrollContainer="false"
android:orientation="horizontal"
android:scrollbars="horizontal"
android:scrollbarSize="5dp"
android:visibility="visible" />
Run Code Online (Sandbox Code Playgroud)
谢谢!
我已经搜索了几个小时,但没有找到符合您要求的任何内容。但是有一些三轮车或一些黑客代码,我们可以根据您的要求获得输出。
在 xml 文件中设置RecyclerView,如下所示。
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbarAlwaysDrawHorizontalTrack="true"
android:scrollbarSize="10dp"
android:scrollbarStyle="outsideInset"
android:scrollbarThumbVertical="@color/black"
android:scrollbars="horizontal"
android:verticalScrollbarPosition="right"/>
Run Code Online (Sandbox Code Playgroud)
将数据以相反的顺序放入列表或数组列表中,因为我们需要旋转回收器视图,因此当我们旋转它时,我们的数据将显示为 ASEC 顺序。
//call this method for set recyclerview
private void setRecyclerView()
{
//Please make sure with your item that it will be inserted in revers order then an then it will be working
ArrayList<String> itemList = new ArrayList<>();
for (int i = 50; i > 0; i--){
itemList.add("item " + i);
}
ContainerAdapter adapterMessage = new ContainerAdapter(MainActivity.this, itemList);
if (adapterMessage != null)
{
rvItemList.setHasFixedSize(true);
rvItemList.setLayoutManager(new LinearLayoutManager(MainActivity.this,
LinearLayoutManager.HORIZONTAL, false);
rvItemList.setItemAnimator(new DefaultItemAnimator());
rvItemList.setAdapter(adapterMessage);
//here is the main line for your requirement
rvItemList.setRotation(180);
adapterMessage.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
最后,在您的适配器中,请按如下所示的相反方向旋转您的所有视图。
public class ViewHolder extends RecyclerView.ViewHolder
{
TextView txt_name;
public ViewHolder(View itemView) {
super(itemView);
txt_name = (TextView) itemView.findViewById(R.id.txt_name);
// here you need to revers rotate your view because your recyclerview is already rotate it so your view is also rotated and you need to revers rotate that view
txt_name.setRotation(-180);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您按照上面的方式进行编码,那么您的项目及其输出看起来像这样的OutPut
请确保执行此类代码,因为 android 不会对此类代码负责,但根据您的要求,您可以这样做。