如何仅在播放歌曲时显示工具栏布局(单击ListView项目)

时间:2017-03-28 14:36:25

标签: android listview android-toolbar

activity_main2.xml

我想仅在单击listView项时才显示以下代码中的工具栏。否则,保持隐藏状态。如果我在Java代码中使用(View.Invisible),则布局消失,但其区域中仍留有空白区域。我希望listview占据该区域。

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.ashutosh.music_player.Main2Activity">


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/catv" />

    <ListView
        android:id="@+id/track_list_view"
        android:layout_width="match_parent"
        android:layout_weight="100"
        android:layout_height="0dp"
        android:overScrollHeader="@drawable/catv1"/>


    <android.support.v7.widget.Toolbar
    android:id="@+id/bar_player"
    android:background="#333333"
    android:theme="@style/Theme.AppCompat.Dark.DarkActionBar"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    app:contentInsetStart="0dp">

    <ImageView
        android:id="@+id/selected_track_image"
        android:layout_width="50dp"
        android:layout_height="55dp" />

    <TextView
        android:id="@+id/selected_track_title"
        android:paddingLeft="8dp"
        android:layout_width="220dp"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/forward"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginLeft="30dp"/>

    <ImageView
        android:id="@+id/player_control"
        android:layout_gravity="right"
        android:layout_width="@dimen/image_size"
        android:layout_height="@dimen/image_size" />

</android.support.v7.widget.Toolbar>


</LinearLayout>

2 个答案:

答案 0 :(得分:3)

试试这个,这就是@shijil Said

<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.ashutosh.music_player.Main2Activity">


    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/catv" />

    <ListView
        android:id="@+id/track_list_view"
        android:layout_width="match_parent"
        android:layout_weight="100"
        android:layout_height="0dp"
        android:overScrollHeader="@drawable/catv1"/>


    <android.support.v7.widget.Toolbar
    android:id="@+id/bar_player"
    android:background="#333333"
    android:theme="@style/Theme.AppCompat.Dark.DarkActionBar"
    android:layout_width="match_parent"
        android:visibility="gone"
    android:layout_height="50dp"
    app:contentInsetStart="0dp">

    <ImageView
        android:id="@+id/selected_track_image"
        android:layout_width="50dp"
        android:layout_height="55dp" />

    <TextView
        android:id="@+id/selected_track_title"
        android:paddingLeft="8dp"
        android:layout_width="220dp"
        android:layout_height="wrap_content" />

    <ImageView
        android:id="@+id/forward"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginLeft="30dp"/>

    <ImageView
        android:id="@+id/player_control"
        android:layout_gravity="right"
        android:layout_width="@dimen/image_size"
        android:layout_height="@dimen/image_size" />

</android.support.v7.widget.Toolbar>


</LinearLayout>

并以编程方式设置

.setVisibility(View.GONE);
.setVisibility(View.VISIBLE);

根据需要

答案 1 :(得分:0)

只需使用相对布局即可。这样,如果将工具栏设置为不可见,列表视图将占据其位置。