我对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>
答案 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)