可点击的目录

时间:2013-05-27 03:56:36

标签: android

我试图制作一个与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 PhysicalExamTextViewDiagnosticReasoning重复进行。这四个要素组成了我的“目录”。

Emergencies

2 个答案:

答案 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());