【问题标题】:How to Scroll to some particular textview element using soothscroll?如何使用 soothscroll 滚动到某些特定的 textview 元素?
【发布时间】:2019-10-08 06:35:25
【问题描述】:

在我的页面中,我有两个部分。一种是包含多个类别的下拉菜单。另一个包含所有类别的产品。就像我在图像中显示的那样。当用户单击任何类别时,页面将滚动到所选类别的相应产品。

到目前为止我已经尝试过:- 首先,我需要在微调器中动态绑定类别名称。之后,我需要将产品与具有微调器值 id 的类别名称绑定。因此,当用户选择任何东西时,我需要从微调器中获取值,然后我需要将该值与产品元素匹配。一旦匹配,我的页面应该滚动到该特定元素。对此有人有什么想法吗?enter image description here

【问题讨论】:

  • 请澄清你的问题,因为你很难理解你在问什么
  • 检查我更新的查询...@a_local_nobody

标签: java android textview android-spinner


【解决方案1】:

所以您想检查 TextViewSpinner 中的文本,对吗?我的建议:

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            String str1 = mySpinner.getSelectedItem().toString();
            String str2 = textview.getText().toString();
            if (str1.equals(str2)) {
                // Show code you want
            }
        }
    });

【讨论】:

  • 感谢您的代码...但是在第 5 行的代码中,textview 是指哪一个? @DinhNguyen
  • textview 是您要检查的文本视图的 ID
  • 但是在这里你没有检查 textview 是否存在或没有使用微调器值?
  • 如果文本视图没有任何文本,则 str2 = "" (空字符串)。
  • 这里我需要检查是否有任何文本视图具有与用户选择的微调器值相同的 id
【解决方案2】:

TextView 需要在您的 XML 布局中分配一个 id。

android:id="+id/SomeName"

现在在您的主 java 类中,您需要声明一个 TextView 类型变量。

private TextView textView;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.SomeName);

现在在键入最后一行时,如果您看到 R.id."SomeName" 出现在 android studio 的模板中,那么这意味着您的 textview 存在于您在 setContentView(....) 中定义的当前布局中;

如果它不存在,它将引发红线或空错误。 至于可见性,可以使用.getVisibility()函数。

**更新答案**

  View parent = layout.getParent();
    for (int i = 0; i < parent.getChildCount(); i++) {
        View v = parent.getChildAt(i);
        if(v instanceof TextView)
        {
              String spinner= mySpinner.getSelectedItem().toString();
              String tv= v.getText().toString();
              if (str1.equals(str2)) {
            // Show code you want
        }
        }
    }

【讨论】:

  • 这里,当用户在微调器中选择一个项目时,我只是从微调器中获取该值,之后我需要检查是否存在与所选值同名的任何文本视图的微调器。为此,您能帮帮我吗? @Sourish Mukherjee
  • 你是说TextView同名id还是TextView同名文本或内容名?
  • 让我稍等片刻来简要解释一下... 应用页面中可用的微调器和文本视图具有相同的值和 ID。 Like Spinner Value = Text View id...@Sourish Mukherjee
  • 确保你的父布局有子视图。还要检查 android studio 中显示的错误。
  • 我可以知道你为什么不使用 ListView 或 Recycler View
【解决方案3】:

您可以检查您的视图可见性:

if (youtTextView.getVisibility() == View.VISIBLE) {
     //Your TextView is visible
} else {
     //Your TextView is not visible (invisible or gone)
}

【讨论】:

  • 这里,当用户在微调器中选择一个项目时,我只是从微调器中获取该值,之后我需要检查是否存在与所选值同名的任何文本视图的微调器。为此,你能帮帮我吗?@Evyatar Cohen
  • 你的意思是TextView和spinner的值一样吗?比如,如果用户从微调器“我的字符串”中选择,那么您需要查找值为“我的字符串”的字符串是否可见?
  • 是的......你是对的......例如:如果用户选择像“大脑”这样的值,那么我需要找到与他选择的 id 相同的文本视图,比如“大脑” .
  • 所以也许您可以使用循环来查找哪个 TextView 与您的微调器中的字符串相等。然后检查特定 TextView 的可见性
  • 是的.. 只是我不知道如何将我的 textview 放入循环中进行检查?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 2011-03-14
  • 2019-10-08
  • 2013-02-28
  • 2022-10-14
  • 2020-01-26
相关资源
最近更新 更多