我正在尝试对没有id的相对布局中的按钮执行一些touchUtil
。
通常它看起来像:
relativelayout rl1 = (relativelayout) base.findViewById(R.id.layout1);
button btn = (button) rl1.findviewbyId(R.id.buttonX);
touchUtil(btn);
但我正在处理的是ScrollView,RelativeLayout,LinearLayout(没有id),然后是按钮。
如何使用touchutils按下该按钮?
答案 0 :(得分:0)
您始终可以使用ViewGroup#getChildAt()
根据索引检索视图。
<强>加成强>
如果你有这样的布局:
<ScrollView>
<RelativeLayout>
<LinearLayout>
<Button/>
<Button/>
</LinearLayout>
<TextView/>
</RelativeLayout>
</ScrollView>
然后你可以像这样遍历ViewTree:
FrameLayout content = (FrameLayout) findViewById(android.R.id.content);
ScrollView scrollView = (ScrollView) content.getChildAt(0);
RelativeLayout relativeLayout = (RelativeLayout) scrollView.getChildAt(0);
LinearLayout linearLayout = (LinearLayout) relativeLayout.getChildAt(0);
Button button1 = (Button) linearLayout.getChildAt(0);
Button button2 = (Button) linearLayout.getChildAt(1);
TextView textView = (TextView) relativeLayout.getChildAt(1);
最好的方案是简单地要求布局设计人员将id添加到您想要的元素中。