java - 从线性布局中获取子元素

标签 java android android-layout get-childitem

我创建了布局文件,由一个线性布局和主布局内的两个嵌套线性布局组成。当我使用 getParent 方法时,它选择第二个嵌套线性布局。我的目标是第一个嵌套线性布局。所以我给第一个嵌套的线性布局一个名为 Linear_top 的 ID。然后我在onCreateView中声明,测试并调试,我没有运气它显示为null。

我的目标是 AnimatedGifImageView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/linear_top"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

  <TextView
    android:id="@+id/music_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Love Story"
    android:textAppearance="?android:attr/textAppearanceLarge" />

  <com.music.flow.lib.AnimatedGifImageView
      android:id="@+id/music_anim"
      android:layout_width="match_parent"
      android:layout_height="76dp"
      android:scaleType="fitXY"
      android:contentDescription="Animation"
       />

</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <RatingBar
        android:id="@+id/music_rating"            
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:minHeight="40dp"
        android:numStars="4"
        android:rating="3.5" />

    <ImageView
        android:id="@+id/btn_playmusic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="50dp"
        android:src="@drawable/resume" />
</LinearLayout>

OnCreateView

linearTop = (LinearLayout) v.findViewById(R.id.linear_top);                 
AnimatedGifImageView animatedGifImageView = 
                    (AnimatedGifImageView) linearTop.getChildAt(1); /* Null Exception */

最佳答案

subview 从 0 开始索引。换句话说,第一个 subview 是 0,第二个 subview 是 1...,依此类推。

另外,为什么不直接通过 ImageView 的 ID 来获取它呢?

AnimatedGifImageView musicAnim = (AnimatedGifImageView) findViewById(R.id.music_anim);

关于java - 从线性布局中获取子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597647/

相关文章:

java - 无法解析方法 'subscribeon(io.reactivex.scheduler)'

java - 将 JButton 与 Canvas 结合使用

java - 如何从 `PreparedStatement` 获取 sessionId ?

java - Spring data jpa - 具有表的所有可能值的字段

java - getApplicationContext() 中的空指针

android - 如何调整框架布局的权重?

android - Android Studio 中的应用程序 - 不显示 XML 布局

android - 谷歌地图 API V2 'Failed to Load Map. Could not contact Google Servers'

java - 如何在对话页面中创建弹出窗口?

android - 按下后退按钮两次后完成 Activity ?