android - 在 Fragment 的线性布局中动态添加 View

标签 android xml android-layout android-fragments dynamically-generated

我正在尝试将 TextView 添加到 fragmentin onCreateView 中的嵌套 linearLayout,我不知道这是否是正确的方法,android 的新手! 提前致谢

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page, container, false);
    List<LifeBerrysXmlParser.Item> items = (ArrayList<LifeBerrysXmlParser.Item>) getArguments().getSerializable("List");
    TextView mainHeading = (TextView) rootView.findViewById(R.id.mainHeading);
    ImageView mainImage = (ImageView) rootView.findViewById(R.id.articleMainImage);
    LinearLayout articleLayout = (LinearLayout) rootView.findViewById(R.id.articleLayout);
    TextView tev = new TextView(getActivity());
    tev.setText("Hello..............");
    articleLayout.addView(tev);
    LifeBerrysXmlParser.Item item = items.get(getArguments().getInt("position"));
    String articleMainHeading = item.mainHeading;
    String articlemainImage = item.mainImage;
    mainHeading.setText(articleMainHeading);
    if (!articlemainImage.isEmpty()) {
        Picasso.with(getContext()).load(articlemainImage).into(mainImage);
    }
    return rootView;
}

任何人都可以帮助我我做错了什么吗?

这是我的 fragment 的 xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:id="@+id/content"
        android:padding="1dp"
        android:layout_weight="1"
        android:background="#000000"
        android:layout_gravity="center">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:background="#ffffff"
            android:scrollIndicators="right">
            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/articleMainImage"
                    android:maxHeight="300dp"/>
                <TextView
                    style="?android:textAppearanceMedium"
                    android:layout_width="match_parent"
                    android:layout_height="?android:attr/listPreferredItemHeightLarge"
                    android:layout_weight="1"
                    android:lineSpacingMultiplier="1.2"
                    android:id="@+id/mainHeading"
                    android:textColor="#ff6435"
                    android:clickable="false"
                    android:layout_gravity="center"
                    android:layout_centerInParent="true"/>
            </RelativeLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/articleLayout"
                android:orientation="horizontal">
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="Read More"
                    android:textSize="15dp"
                    android:textStyle="bold"
                    android:layout_gravity="center"
                    android:clickable="true"
                    android:focusable="false"
                    android:gravity="center"
                    android:onClick="readMore"
                    android:padding="1dp"
                    android:textColor="@android:color/holo_green_light" />
            </LinearLayout>
        </LinearLayout>
</LinearLayout>

最佳答案

您的文章布局有误。您的文章布局具有水平方向,并且其子 TextView 具有 match_parent 宽度,因此当您添加新的子项时,它会在屏幕之外。将方向更改为垂直:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/articleLayout"
            android:orientation="vertical">      <---- Change this line
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Read More"
                android:textSize="15dp"
                android:textStyle="bold"
                android:layout_gravity="center"
                android:clickable="true"
                android:focusable="false"
                android:gravity="center"
                android:onClick="readMore"
                android:padding="1dp"
                android:textColor="@android:color/holo_green_light" />
        </LinearLayout>

关于android - 在 Fragment 的线性布局中动态添加 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38512304/

相关文章:

java - 从Service类中的SQLliteDatabaseHelper获取数据

android - 底部的元素使用 AppBarLayout 在导航栏后面绘制元素

android - 我的布局文件没有显示在 setContent(R.layout.xml 文件)..?

android - 我怎样才能在我的应用程序中实现 longclickable

android - 自定义 View 'CustomAutoCompleteTextView' 已调用 setOnTouchListener 但未覆盖 performClick

如果我尝试修复 gps 坐标,Android 模拟器会重新启动

带有谷歌地图导航和文本覆盖的 Android 应用程序

xml - 为什么 RSS 不能处理符号?

c# - 读取xml属性

c# - X文档 : get the first child element of type 'a' or 'b'