Android Textview不会在片段

时间:2015-12-03 12:58:45

标签: android android-fragments

我正在尝试将Fragment添加到我的FrameLayout中,似乎它被正确添加,但后来我看不到TextView的文本。

片段布局:

<?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"
    >
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/text1"
        android:text="Hello"
        android:background="#34f5d6"/>
</LinearLayout>

FragmentClass:

import android.app.Fragment;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.text.method.CharacterPickerDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

public class TimerClass extends Fragment {
        public static Fragment newInstance(Context context) {
            TimerClass fragment = new TimerClass();
            return fragment;
        }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance){
        ViewGroup root=(ViewGroup)inflater.inflate(R.layout.mylayout,container,false);

        return root;
    }
}

我使用的代码将片段添加到FrameLayout

    FragmentTransaction tx= getFragmentManager().beginTransaction();
    Fragment fragment= TimerClass.newInstance(getApplicationContext());
    tx.replace(R.id.fl, fragment);
    tx.commit();

我不明白为什么它不显示文本,我试图改变文本的颜色,但它不起作用。 如果我改变TextView的背景,它的工作原理;如果我在TextView上添加一个OnClockListener,它也可以。只有它不显示文字。

你能帮助我吗?

编辑: 我找到了解决方案:问题出在FrameLayout上;它的顶部部分被动作栏覆盖。 通过修复FrameLayout的布局,问题就消失了。

2 个答案:

答案 0 :(得分:0)

首先只需更改此

    ViewGroup root=(ViewGroup)inflater.inflate(R.layout.mylayout,container,false);
    return root;

    View root = inflater.inflate(R.layout.mylayout,container,false);
    return root;

也是这个

 public static Fragment newInstance(Context context) {
        TimerClass fragment = new TimerClass();
        return fragment;
    }

public static TimerClass getInstance() {
    TimerClass fragment = new TimerClass();
    return fragment;
}

答案 1 :(得分:0)

我认为问题仅在于 TextView 的高度和宽度,因为您已将它们视为match_parent

所以尝试替换

<TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/text1"
        android:text="Hello"
        android:background="#34f5d6"/>

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/text1"
        android:text="Hello"
        android:background="#34f5d6"/>