代码之家  ›  专栏  ›  技术社区  ›  Russ Bateman Basil Bourque

ScrollView的两个孩子?

  •  0
  • Russ Bateman Basil Bourque  · 技术社区  · 14 年前

    我试图创建一个非常简单的应用程序(我的学习计划的一部分),垂直方向,具有 编辑文本 .html文件 .png格式

    我知道 卷轴视图 只能生一个孩子。从概念上讲,我希望屏幕的其余部分是一个垂直方向的内容区域,用于显示文本( )的URL和“获取文本”被单击或图像( )如果它是一个图像并且单击了“获取图像”。

    我试着用这个(伪代码)在 main.xml

    <LinearLayout>
      <EditText />         --where to type the URL
      <Button />           --click to treat URL as text
      <Button />           --click to treat URL as image
      <FrameLayout>        --(used to be ScrollView)
        <LinearLayout>
          <TextView />     --content region occupied by either text
          <ImageView />    --or an image (but not both)
        </LinearLayout>
      </FrameLayout>
    </LinearLayout>
    

    为了不违反独生子女的规定。然而,这是行不通的,目前我还没有找到任何样本来提示我如何最好地实现这一点。我在调试时收到的最后一个投诉是:

    原因: java.lang.ClassCastException:

    谢谢,

    2 回复  |  直到 14 年前
        1
  •  0
  •   fedj    14 年前

    您的xml中有两个元素具有相同的id,这就是无法工作的,它是一个id。

    final TextView  textView   = ( TextView ) findViewById( R.id.content );
    final ImageView imageView  = ( ImageView )findViewById( R.id.content );
    

    你必须区分文本内容和图像内容。

        2
  •  0
  •   Cheryl Simon    14 年前

    你说“不行”是什么意思?

    能否为异常提供完整的stacktrace/logcat输出?

    我看不出你草拟的xml有什么问题。我想你把其中一个的可见性设为 GONE ,取决于要显示的内容?

    由于您希望TextView和ImageView相互重叠,因此可以考虑使用 FrameLayout 而不是线性布局。