2015-05-18 2 views
3

Я довольно новичок в программировании на Android. Поскольку я следую инструкциям здесь, https://developer.android.com/training/basics/actionbar/overlaying.html .. У меня проблема. Когда я включаю режим наложения панели действий, объект textView, который я создаю во время выполнения, покрывается панелью действий.Как создать 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> 

ответ

3

Если вы хотите, чтобы убедиться, что нет Соображения в соответствии с вашими действиями Bar, вы можете добавить к нему верхний маркер в XML.

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

как описано here.

Возможно, вы также должны вставить атрибут android:orientation:"vertical", так как используете LinearLayout.

Создать TextView в вашем XML (не программно) 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); 
+0

По какой-то причине TextView я создаю в процессе деятельности по-прежнему находится под панелью действий даже с 'android: layout_marginTop = ...' – GalaxyVintage

+0

Попробуйте: 'android: paddingTop ="? android: attr/actionBarSize ">', используете ли вы библиотеку поддержки? Вы создали «TextView» в xml, а не программно? Если не работает пост больше кода –

+0

Я добавил код для макета .. К сожалению, ни один из них не работал ... мой viewText по-прежнему охвачен панель действий ... В настоящее время я использую библиотеку поддержки, и я создал viewText в файл java ... – GalaxyVintage

1

получить размер панели действий

How to get the ActionBar height?

создать макет, который есть к началу заполнения равен высоте действий бара

и чем добавить ваш взгляд

Смежные вопросы