我试图制作一个与wikipedias as shown here.
相似的“目录”我有ScrollView
,其中包含许多TextViews
。我制作了一个包含可点击元素的“目录”,但我无法弄清楚如何使ScrollView
scrollTo()
成为正确的位置。
我尝试将TextView
转换为字符串,并使用s.IndexOf()
,但它为我提供了字符串中文本的位置,而不是ScrollView
。这种行为是有道理的
然后,我尝试查看其他ScrollView
方法,以找到有用的方法,但用完了想法。
如果我能找到IndexOf
TextView
ScrollView
ScrollTo
我可以轻松TextView
那个位置,但我无法弄清楚如何做到这一点。
谢谢, EDIT2:这非常类似于使用#as described here.
超链接到HTML中的内联锚点 编辑:添加了我的XML,这似乎是代码中唯一重要的部分,使其更加清晰。目标是点击标识为KeyQuestionsTextView
的{{1}},然后向下滚动到标识为TextView
的{{1}}。我已KeyQuestions
onclick
监听器注册了KeyQuestionsTextView
事件,但我不知道如何将OnClick
滚动到正确的位置。我真的需要在ScrollView
内获得所需TextView
的Y偏移,因为ScrollView
方法似乎很简单。
以上示例将针对ScrollTo
PhysicalExamTextView
和DiagnosticReasoning
重复进行。这四个要素组成了我的“目录”。
Emergencies
答案 0 :(得分:0)
我有一个解决方案。首先你点击Y轴触摸,当你点击这样的Textview时,
@Override
public boolean onTouchEvent(MotionEvent event) {
int y = (int)event.getY();
return false;
}
然后将滚动视图滚动到Y轴,如
YourScrollView.scrollTo(0, y);//here y is the y axis coordinate got from touch event
答案 1 :(得分:0)
我明白了。我发现我可以非常轻松地获得TextView
的Y位置,并且ScrollTo
相当容易:
ScrollView sv = (ScrollView) findViewById(R.id.scrollView1);
TextView tv = (TextView) findViewById(R.id.KeyQuestionsTextView);
sv.scrollTo(0, (int) tv.getY());