在操作栏下创建textView

时间:2015-05-18 23:29:33

标签: android android-layout

我对android编程很新。当我按照这里的教程,https://developer.android.com/training/basics/actionbar/overlaying.html时......我遇到了问题。当我启用操作栏覆盖模式时,我在运行时创建的textView对象被操作栏覆盖。

   TextView textView =TextView(this);
   textView.setText(message);//message is given from previous activity
   setContentView(textView);

有没有解决这个问题?我正在考虑获取操作栏的高度并设置边距,但我找不到以编程方式获得高度的方法

这是布局

  <LinearLayout
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:layout_paddingTop="?attr/actionBarSize"
tools:context="com.example.galaxy.test.DisplayMessageActivity"
>

和style.xml       

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat" >

        <item name="android:windowActionBarOverlay">true</item>

        <!-- Support library compatibility -->
        <item name="windowActionBarOverlay">true</item>

</style>

2 个答案:

答案 0 :(得分:3)

如果您想确保操作栏下没有视图,可以在XML中为其添加上边距。

<YourView
    ...
    android:layout_paddingTop="?android:attr/actionBarSize" />

here所述。

您可能也应该插入属性android:orientation:"vertical",因为您使用的是LinearLayout

在xml中创建TextView(不是以编程方式) activity_display_message.xml

<LinearLayout android:id="@+id/display_message"     
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools" 
  android:orientation="vertical"
  android:layout_width="match_parent" android:layout_height="match_parent"
  android:paddingLeft="@dimen/activity_horizontal_margin"   
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="?android:attr/actionBarSize"     
  android:paddingBottom="@dimen/activity_vertical_margin"
  tools:context="com.example.galaxy.test.DisplayMessageActivity">

<TextView android:id="@+id/message"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/message" 
    android:layout_marginTop="?attr/actionBarSize"/>

</LinearLayout>

onCreate()方法中,您可以通过以下方式检索它:

setContentView(R.layout.activity_display_message);
TextView message = (TextView) findViewById(R.id.message);
message.setText(yourMessageString);

答案 1 :(得分:1)

获取操作栏大小

  

How to get the ActionBar height?

创建一个布局,其顶部填充等于动作条高度

然后添加你的观点