使用TextView来扩充布局

时间:2016-09-22 21:47:07

标签: android android-layout android-fragments

点击每个TextView后,他们应该引导另一个布局文件,以帮助用户了解人口贩运。在onCreate方法中,我将setOnClickListener设置为我的文本视图。然而,膨胀是一个问题。这被称为膨胀视图吗?我已经看到人们建议使用片段,使用setContentView(从我发现不应该使用它),并使用布局inflater传递我想要的布局和null 。然而,这不起作用。这段代码应该怎么样?

XML:

.height()

java类:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.piatt.worksafe.MainActivity">


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Work Safe!"
    android:textSize="36sp"
    android:layout_centerHorizontal="true"
    android:paddingBottom="32dp"
    android:id="@+id/title"
     />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="What is Human Trafficing?"
    android:layout_below="@+id/title"
    android:layout_centerHorizontal="true"
    android:textSize="24sp"
    android:padding="16dp"
    android:id="@+id/whatIsHumanTrafficing"
    android:clickable="true"
    />


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="How do I get safe labor?"
    android:layout_below="@+id/whatIsHumanTrafficing"
    android:layout_centerHorizontal="true"
    android:textSize="24sp"
    android:padding="16dp"
    android:id="@+id/howDoIGetSafeLabor"
    />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="How do I check that my job / job offer is legal?"
    android:layout_below="@+id/howDoIGetSafeLabor"
    android:layout_centerHorizontal="true"
    android:textSize="24sp"
    android:padding="16dp"
    android:gravity="center"
    android:id="@+id/checkLegality"
    />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="How can I get help?"
    android:layout_below="@+id/checkLegality"
    android:layout_centerHorizontal="true"
    android:textSize="24sp"
    android:padding="16dp"
    android:id="@+id/getHelp"
    />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="About us"
    android:layout_below="@+id/getHelp"
    android:layout_centerHorizontal="true"
    android:textSize="16sp"
    android:layout_alignParentBottom="true"
    android:gravity="bottom"
    android:id="@+id/aboutUs"
    />



</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

旁白:您可以阅读View.inflate

的文档
  

这是什么情况,为什么我需要它,它来自哪里?

内容:YourActivity.this(替换为您的实际班级名称)

原因:您需要它作为一个参数来膨胀视图。

  

什么是ViewGroup,我为什么需要它以及它来自哪里?

你可能不需要它;它可以为null。 ViewGroup将视图扩展为。与ListView一样,您可以将每一行作为“组”加载到列表中。

无论如何,如果你想根据点击的内容动态显示不同的布局文件,是Fragment是一种方法,ViewStub也是如此。

你实际上并没有在TextView上调用inflate,因为它是一个静态方法。它相当于使用LayoutInflater

执行此操作
View v = LayoutInflater.from(YourActivity.this).inflate(R.layout.your_layout, null);
// TODO: Do something with v

答案 1 :(得分:0)

最终代码应如下所示:

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final RelativeLayout rl = (RelativeLayout) findViewById(R.id.splashScreenId);
    TextView whatIsHumanTrafficing = (TextView) findViewById(R.id.whatIsHumanTrafficing);
    whatIsHumanTrafficing.setOnClickListener(new View.OnClickListener(){
       public void onClick(View view){


           MainActivity.this.setContentView(R.layout.what_is_human_trafficing);

       }
    });

}

在文本视图上设置一个on click侦听器,然后在MainActivity.this内将内容视图设置为所需的布局。