android xml talkback,如何为RecyclerView中的项目自定义TalkBack使用提示?

我想让我的应用程序可用于盲人 . 在RecyclerView中点击子项时,它会突出显示,而在双击时,它会打开子项的类别 . Basically one has to double tap to perform click action. 我希望TalkBack通过Usage Hints来说明这一点 . 尝试使用[RecyclerViewAccessibilityDelegate] [1]

这是我的MainActivity.java

public class MainActivity extends AppCompatActivity

{

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_levelx_layout);

..

..

initializeLayoutViews();

initializeViewListeners();

...

}

private void initializeLayoutViews()

{

...

mRecyclerView = findViewById(R.id.recycler_view);

mRecyclerView.setLayoutManager(new GridLayoutManager(this, 3));

mRecyclerView.setAdapter(new MainActivityAdapter(this));

mRecyclerView.setVerticalScrollBarEnabled(true);

mRecyclerView.setScrollbarFadingEnabled(false);

mRecyclerView.requestFocus();

}

private void initializeViewListeners()

{

initRecyclerViewListeners();

}

private void initRecyclerViewListeners() {

mRecyclerView.addOnItemTouchListener(new RecyclerTouchListener(this, mRecyclerView, new RecyclerTouchListener.ClickListener()

{

@Override

public void onClick(final View view, final int position)

{

ViewCompat.setAccessibilityDelegate(mRecyclerView, new TalkbackHints_RecyclerView(mRecyclerView));

LinearLayout menuItemLinearLayout = view.findViewById(R.id.linearlayout_icon1);

menuItemLinearLayout.setOnClickListener(new View.OnClickListener()

{

@Override

public void onClick(View v)

{

tappedCategoryItemEvent(view, v, position);

}

});

}

@Override

public void onLongClick(View view, int position) {

}

}));

mRecyclerView.addOnChildAttachStateChangeListener(new RecyclerView.OnChildAttachStateChangeListener()

{

@Override

public void onChildViewAttachedToWindow(View view)

{

mRecyclerItemsViewList.set(mRecyclerView.getChildLayoutPosition(view), view);

if (mRecyclerItemsViewList.contains(view) && mSelectedItemAdapterPos > -1 &&

mRecyclerView.getChildLayoutPosition(view) == mSelectedItemAdapterPos)

setMenuImageBorder(view, true);

}

@Override

public void onChildViewDetachedFromWindow(View view) {

setMenuImageBorder(view, false);

mRecyclerItemsViewList.set(mRecyclerView.getChildLayoutPosition(view), null);

}

});

}}

和TalkBackHints_RecyclerView.java:

import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;

import android.support.v7.widget.RecyclerView;

import android.support.v7.widget.RecyclerViewAccessibilityDelegate;

import android.view.View;

import android.view.accessibility.AccessibilityNodeInfo;

public class TalkbackHints_RecyclerView extends RecyclerViewAccessibilityDelegate

{

public TalkbackHints_RecyclerView(RecyclerView recyclerView) {

super(recyclerView);

}

@Override

public void onInitializeAccessibilityNodeInfo(View host,

AccessibilityNodeInfoCompat info) {

super.onInitializeAccessibilityNodeInfo(host, info);

//RecyclerViewAccessibilityDelegate.ItemDelegate();

AccessibilityNodeInfoCompat.AccessibilityActionCompat intoCategory = new

AccessibilityNodeInfoCompat.AccessibilityActionCompat(

AccessibilityNodeInfo.ACTION_CLICK, "select. Double tap again to " +

"enter this category");

info.addAction(intoCategory);

}

}

请告诉我哪里出错了 .

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值