我一直在尝试开发一个包含可滚动活动的Android应用程序 在活动中,我有2个textView,我希望它们也可以滚动。
我的问题是 每当我触摸textView内部时,滚动显示,但主要活动部分是linearLayout直接钢化焦点而不再是textView滚动
我现在的方式是设置textView滚动我已经完成的xml文件。 如果我继续抬起我的手指并将其放回屏幕上试图滚动textView我可以移动一点点,但正如我所说,包含textView的布局捕获焦点并让我无法滚动textView。
我希望我能很好地解释我的问题。
请提出任何帮助建议。
让我解释一下如何构建应用程序 第一部分是:主要(第一)活动是tabHost 我定义为可滚动
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="422dp" >
</FrameLayout>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="63dp" >
</TabWidget>
</LinearLayout>
</ScrollView>
</TabHost>
我遇到问题的是这个活动
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@color/light_gray_color"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:weightSum="1"
android:orientation="vertical"
android:baselineAligned="false">
<LinearLayout
android:id="@+id/linearLayout3"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.04">
<TextView
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textColor="@color/black_color"
android:layout_gravity="center_horizontal"
android:text="@string/display_label"
android:id="@+id/display_label">
</TextView>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.83"
android:baselineAligned="false"
android:orientation="horizontal" >
<ScrollView
android:id="@+id/english_scrollView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.03" >
<TextView
android:id="@+id/display_english_textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="2px"
android:layout_marginRight="2px"
android:layout_weight="0.03"
android:background="@drawable/black_rectangle"
android:focusable="true"
android:paddingLeft="2px"
android:paddingRight="2px"
android:scrollbars="vertical"
android:textColor="@color/black_color" />
</ScrollView>
<ScrollView
android:id="@+id/translation_scrollView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.03" >
<TextView
android:id="@+id/display_translation_textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="2px"
android:layout_marginRight="2px"
android:layout_weight="0.03"
android:background="@drawable/black_rectangle"
android:focusable="true"
android:paddingLeft="2px"
android:paddingRight="2px"
android:scrollbars="vertical"
android:textColor="@color/black_color" />
</ScrollView>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
我猜你应该从第一个xml中删除<ScrollView>
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="422dp" >
</FrameLayout>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="63dp" >
</TabWidget>
</LinearLayout>
</TabHost>
答案 1 :(得分:0)
我的理解是你有一个垂直滚动活动,其中包含两个垂直滚动的文本视图?如果是这样,你就做不到。它不仅仅是一个糟糕的设计选择,它实际上无法分辨用户在进行滑动动作时想要滚动的视图。您可以在垂直滚动视图中进行水平滚动,反之亦然。您不能在水平滚动内部进行水平滚动或在垂直滚动内部进行垂直滚动。
我相信2010年google io会议的listview演讲中提到了这一点:http://www.youtube.com/watch?v=wDBM6wVEO70