添加 ListView 后工具栏背景丢失并移动标题 (Android)
Toolbar background missing and moved Title after adding ListView (Android)
我最近尝试添加一个列表视图来显示本地蓝牙设备。
(请看图片)
渲染图像看起来不错
因此,工具栏的背景不可见(假定在列表视图后面)并且标题已移到页面下方。我在工具栏中还有两个标记为 'Scan' 和 'Refresh' 的按钮,它们可以在当前列表视图位置上运行,但是如果我将它放在 table 的顶部,它们是可见的但是不工作。
我正在扩展 AppCompatActivity
phone
上的应用程序屏幕截图
我认为问题出在主布局中,因为问题是在实施列表视图后才出现的。
我是 Android 的新手,这是我的第一个 post 所以如果我错过了任何重要的事情,例如任何额外的代码请让我知道!!
提前致谢。
主要ActivityXML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.v7.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBackground"
/>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*"
android:weightSum="1">
<TextView
android:padding="@dimen/activity_horizontal_margin"
android:gravity="center_horizontal"
android:textSize="20sp"
android:text="Local Environmental Parameters"/>
<TableRow>
<TextView
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Ambient Temperature"/>
<TextView
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Barometric Pressure"
android:layout_marginBottom="25dp"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/rd_temp"
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"/>
<TextView
android:layout_column="2"
android:id="@+id/rd_pressure"
android:textSize="15sp"
android:gravity="center_horizontal"
android:layout_marginBottom="50dp"/>
</TableRow>
<TableRow>
<TextView
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Ambient Light"
android:id="@+id/textView" />
<TextView
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Humidity"
android:layout_marginBottom="25dp"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/rd_light"
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/rd_humidity"
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"/>
</TableRow>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="120dp" />
</TableLayout>
</RelativeLayout>
工具栏XML
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:id="@+id/tool_bar">
</android.support.v7.widget.Toolbar>
主要Activity onCreate()
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan);
...
Toolbar vToolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(vToolbar);
// Initialise list view adapter
ListView vListView = (ListView) findViewById(R.id.list);
vLeDeviceListAdapter = new LeDeviceListAdapter();
vListView.setAdapter(vLeDeviceListAdapter);
}
将父布局从相对布局更改为垂直方向的线性布局,并为工具栏提供固定高度
或
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorBackground"/>
<TableLayout
android:id="@+id/table"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:weightSum="1"
android:layout_below ="@+id/tool_bar">
<TextView
android:padding="@dimen/activity_horizontal_margin"
android:gravity="center_horizontal"
android:textSize="20sp"
android:text="Local Environmental Parameters"/>
<TableRow>
<TextView
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Ambient Temperature"/>
<TextView
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Barometric Pressure"
android:layout_marginBottom="25dp"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/rd_temp"
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"/>
<TextView
android:layout_column="2"
android:id="@+id/rd_pressure"
android:textSize="15sp"
android:gravity="center_horizontal"
android:layout_marginBottom="50dp"/>
</TableRow>
<TableRow>
<TextView
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Ambient Light"
android:id="@+id/textView" />
<TextView
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Humidity"
android:layout_marginBottom="25dp"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/rd_light"
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/rd_humidity"
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"/>
</TableRow>
<ListView
android:id="@+id/list"
android:layout_below ="@+id/table"
android:layout_width="match_parent"
android:layout_height="120dp" />
</TableLayout>
</RelativeLayout>
尝试使用协调器布局,请参阅下面的一些示例
此处框架布局和视图寻呼机或我的内容替换为您的内容
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
app:contentScrim="?attr/colorPrimary"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
app:layout_scrollFlags="scroll|enterAlways"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"/>
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_below="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabTextColor="@android:color/white"
app:tabSelectedTextColor="@android:color/white"
app:tabIndicatorColor="@android:color/white"
app:tabIndicatorHeight="6dp"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<FrameLayout
android:visibility="gone"
android:id="@+id/hfp_container"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ripple_fab"
android:src="@drawable/ic_add_circle_outline_black_24dp"
android:layout_marginBottom="20dp"
android:layout_marginRight="20dp"
android:layout_gravity="bottom|right"
app:fabSize="normal" />
我最近尝试添加一个列表视图来显示本地蓝牙设备。
(请看图片)
渲染图像看起来不错
因此,工具栏的背景不可见(假定在列表视图后面)并且标题已移到页面下方。我在工具栏中还有两个标记为 'Scan' 和 'Refresh' 的按钮,它们可以在当前列表视图位置上运行,但是如果我将它放在 table 的顶部,它们是可见的但是不工作。
我正在扩展 AppCompatActivity
phone
上的应用程序屏幕截图我认为问题出在主布局中,因为问题是在实施列表视图后才出现的。
我是 Android 的新手,这是我的第一个 post 所以如果我错过了任何重要的事情,例如任何额外的代码请让我知道!!
提前致谢。
主要ActivityXML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<android.support.v7.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorBackground"
/>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="*"
android:weightSum="1">
<TextView
android:padding="@dimen/activity_horizontal_margin"
android:gravity="center_horizontal"
android:textSize="20sp"
android:text="Local Environmental Parameters"/>
<TableRow>
<TextView
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Ambient Temperature"/>
<TextView
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Barometric Pressure"
android:layout_marginBottom="25dp"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/rd_temp"
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"/>
<TextView
android:layout_column="2"
android:id="@+id/rd_pressure"
android:textSize="15sp"
android:gravity="center_horizontal"
android:layout_marginBottom="50dp"/>
</TableRow>
<TableRow>
<TextView
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Ambient Light"
android:id="@+id/textView" />
<TextView
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Humidity"
android:layout_marginBottom="25dp"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/rd_light"
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/rd_humidity"
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"/>
</TableRow>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="120dp" />
</TableLayout>
</RelativeLayout>
工具栏XML
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorPrimary"
android:elevation="4dp"
android:id="@+id/tool_bar">
</android.support.v7.widget.Toolbar>
主要Activity onCreate()
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan);
...
Toolbar vToolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(vToolbar);
// Initialise list view adapter
ListView vListView = (ListView) findViewById(R.id.list);
vLeDeviceListAdapter = new LeDeviceListAdapter();
vListView.setAdapter(vLeDeviceListAdapter);
}
将父布局从相对布局更改为垂直方向的线性布局,并为工具栏提供固定高度
或
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorBackground"/>
<TableLayout
android:id="@+id/table"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:weightSum="1"
android:layout_below ="@+id/tool_bar">
<TextView
android:padding="@dimen/activity_horizontal_margin"
android:gravity="center_horizontal"
android:textSize="20sp"
android:text="Local Environmental Parameters"/>
<TableRow>
<TextView
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Ambient Temperature"/>
<TextView
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Barometric Pressure"
android:layout_marginBottom="25dp"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/rd_temp"
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"/>
<TextView
android:layout_column="2"
android:id="@+id/rd_pressure"
android:textSize="15sp"
android:gravity="center_horizontal"
android:layout_marginBottom="50dp"/>
</TableRow>
<TableRow>
<TextView
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Ambient Light"
android:id="@+id/textView" />
<TextView
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"
android:text="Humidity"
android:layout_marginBottom="25dp"/>
</TableRow>
<TableRow>
<TextView
android:id="@+id/rd_light"
android:layout_column="0"
android:textSize="15sp"
android:gravity="center_horizontal"/>
<TextView
android:id="@+id/rd_humidity"
android:layout_column="2"
android:textSize="15sp"
android:gravity="center_horizontal"/>
</TableRow>
<ListView
android:id="@+id/list"
android:layout_below ="@+id/table"
android:layout_width="match_parent"
android:layout_height="120dp" />
</TableLayout>
</RelativeLayout>
尝试使用协调器布局,请参阅下面的一些示例
此处框架布局和视图寻呼机或我的内容替换为您的内容
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
app:contentScrim="?attr/colorPrimary"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
app:layout_scrollFlags="scroll|enterAlways"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"/>
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_below="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabTextColor="@android:color/white"
app:tabSelectedTextColor="@android:color/white"
app:tabIndicatorColor="@android:color/white"
app:tabIndicatorHeight="6dp"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<FrameLayout
android:visibility="gone"
android:id="@+id/hfp_container"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ripple_fab"
android:src="@drawable/ic_add_circle_outline_black_24dp"
android:layout_marginBottom="20dp"
android:layout_marginRight="20dp"
android:layout_gravity="bottom|right"
app:fabSize="normal" />