【问题标题】:Why can't I click the scrollable Textview?为什么我不能点击可滚动的 Textview?
【发布时间】:2023-03-18 15:41:01
【问题描述】:

我制作了包含一些 Textviews 的片段。 2 Textviews只是Textviews,其他都是可滚动的Textviews。 我在 MainActivity 上使用了片段。 我希望片段的整个区域都是可点击的。 但是,如果我单击可滚动 Textviews 的区域,它就不起作用。 它仅在我单击不可滚动的 Textviews 时起作用。 为什么我不能点击它们?

这是我的代码的一部分。

1.片段.xml

<TextView
    android:id="@+id/tv_title_ins_time"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.7"
    android:paddingStart="10dp"
    android:gravity="center_vertical"
    android:text="@string/instruction_time_receipt"
    android:background="@color/MainTitleBackgroundColor"
    android:textColor="@color/WhiteTextColor"
    android:textSize="@dimen/ll_instruction_summary_title_text_size"/>

<TextView
    android:id="@+id/tv_main_ins_time"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1.3"
    android:scrollbars="vertical" ->scroll
    android:paddingStart="10dp"
    android:textStyle="bold"
    android:background="@drawable/input02"
    android:textColor="@color/MainInputTextColor"
    android:textSize="@dimen/ll_instruction_summary_text_size" />

<TextView
    android:id="@+id/tv_title_ins_loc"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.7"
    android:paddingStart="10dp"
    android:gravity="center_vertical"
    android:text="@string/instruction_disaster_location"
    android:background="@color/MainTitleBackgroundColor"
    android:textColor="@color/WhiteTextColor"
    android:textSize="@dimen/ll_instruction_summary_title_text_size"/>

<TextView
    android:id="@+id/tv_main_ins_loc"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="2.3"
    android:scrollbars="vertical"
    android:background="@drawable/input02"
    android:paddingStart="10dp"
    android:textStyle="bold"
    android:textColor="@color/MainInputTextColor"
    android:textSize="@dimen/ll_instruction_summary_text_size" />

2。 Fagment.java

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ....

    tvTime = (TextView) mView.findViewById(R.id.tv_main_ins_time);
    tvLocation = (TextView) mView.findViewById(R.id.tv_main_ins_loc); 

    tvTime.setMovementMethod(new ScrollingMovementMethod());
    tvLocation.setMovementMethod(new ScrollingMovementMethod());
}

3。 main.xml

...  <fragment
            android:id="@+id/fragment_instruction_summary"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="3.85"
            android:name="(myPackageName).Fragment"
            tools:layout="@layout/fragment" >
        </fragment> ....

4. MainActivity.java

findViewById(R.id.fragment_instruction_summary).setOnClickListener(onClickListener);

请帮助我。 我试图将片段放在一个线性布局中并将单击侦听器设置为线性布局,但结果相同。

【问题讨论】:

  • 你试过将第二个TextView包裹在ScrollView中吗?这样 ScrollView 负责滚动,TextView 负责点击事件。
  • 谢谢,但我试过了,也没有用。 @jelic98

标签: android android-fragments onclicklistener


【解决方案1】:

当像布局一样使用时,滚动效果很好。尝试将您的 TextView 包装在另一个布局中。像这样:

<TextView
    android:id="@+id/tv_title_ins_time"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.7"
    android:paddingStart="10dp"
    android:gravity="center_vertical"
    android:text="@string/instruction_time_receipt"
    android:background="@color/MainTitleBackgroundColor"
    android:textColor="@color/WhiteTextColor"
    android:textSize="@dimen/ll_instruction_summary_title_text_size"/>

<TextView
    android:id="@+id/tv_title_ins_loc"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.7"
    android:paddingStart="10dp"
    android:gravity="center_vertical"
    android:text="@string/instruction_disaster_location"
    android:background="@color/MainTitleBackgroundColor"
    android:textColor="@color/WhiteTextColor"
    android:textSize="@dimen/ll_instruction_summary_title_text_size"/>

<ScrollView 
    android:id="@+id/scroll"
    android:layout_height="your_preference"
    android:layout_width="your_preference">

        <LinearLayout
            android:orientation="vertical"
            android:layout_height="your_preference"
            android:layout_width="your_preference">
        <TextView
            android:id="@+id/tv_main_ins_time"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1.3"
            android:paddingStart="10dp"
            android:textStyle="bold"
            android:background="@drawable/input02"
            android:textColor="@color/MainInputTextColor"
            android:textSize="@dimen/ll_instruction_summary_text_size" />

        <TextView
            android:id="@+id/tv_main_ins_loc"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="2.3"
            android:background="@drawable/input02"
            android:paddingStart="10dp"
            android:textStyle="bold"
            android:textColor="@color/MainInputTextColor"
            android:textSize="@dimen/ll_instruction_summary_text_size" />

    </LinearLayout>
</ScrollView>

在你的片段中:

ScrollView scrollView;

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ....

scrollView = (ScrollView) mView.findViewById(R.id.scroll);
scrollView.setOnClickListener(new View.OnClickListener() {
  // do anything
 });

tvTime = (TextView) mView.findViewById(R.id.tv_main_ins_time);
tvLocation = (TextView) mView.findViewById(R.id.tv_main_ins_loc);
tvTime.setOnClickListener(new View.OnClickListener(){
     // do anything
});
tvLocation.setOnClickListener(new View.OnClickListener(){
     // do anything
});

tvTime.setMovementMethod(new ScrollingMovementMethod());
tvLocation.setMovementMethod(new ScrollingMovementMethod());
}

【讨论】:

  • 谢谢,但是当我单击片段的整个区域时,我必须在 MainActivity 中做一些事情。我怎么能……
猜你喜欢
  • 2023-03-30
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 2013-09-22
  • 2012-03-01
  • 1970-01-01
  • 2021-01-24
  • 1970-01-01
相关资源
最近更新 更多