2016-09-21 5 views
0

私はアンドロイドプロジェクトで自分のUIを修正しようとしていますが、いくつかの要素は現在のxmlで画面外になります。なぜ私はこのような質問をしているのか分かりません。アンドロイドの画面外の要素

私は現在の曲のアーティストと曲名で2つのテキストビューと曲を含むリストビューを持っています。その下に、3つの浮動アクションボタンがあります。 (フォワード、再生/次/一時停止)

コード:しかし

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/listContainer" 
     android:layout_marginBottom="100dp" 
     > 
     <ListView 
      android:id="@+id/list_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:clipToPadding="false" 
      android:paddingBottom="@dimen/activity_vertical_margin" 
      android:paddingLeft="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin" 
      android:paddingTop="@dimen/activity_vertical_margin"/> 
    </LinearLayout> 
    <TextView 
     android:id="@+id/currentSongName" 
     android:layout_below="@+id/listContainer" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#B2B6B8" 
     android:text="TEST" 
     /> 
    <TextView 
     android:id="@+id/currentSongArtist" 
     android:layout_below="@+id/currentSongName" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#B2B6B8" 
     android:text="TEST" 
     /> 
    <LinearLayout 
     android:layout_below="@+id/currentSongArtist" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:weightSum="3" 
     android:background="#B2B6B8" 
     > 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/prev_song" 
      android:layout_weight="1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_margin="@dimen/fab_margin" 
      android:src="@android:drawable/ic_media_previous" /> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/play_pause" 
      android:layout_weight="1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_margin="@dimen/fab_margin" 
      android:src="@android:drawable/ic_media_pause" /> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/next_song" 
      android:layout_weight="1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom|end" 
      android:layout_margin="@dimen/fab_margin" 
      android:src="@android:drawable/ic_media_next" /> 

    </LinearLayout> 
</RelativeLayout> 

、私が使用しています。

android:layout_below="@+id/listContainer" 

最初のtextViewでは、listContainer以下のすべてのUI要素が消えます。 それを削除すると、すべての要素はリストビューの上端と上端に揃えられます。

これはなぜですか、また、テキストフィールドとボタンリニアレイアウトを配置してリストビューの余白の下に配置するにはどうすればよいですか?

+0

:一つの解決策は、画面の下部とそのビュー上のリストに底面図を揃え、このようなもの、だろう既にすべての画面に収まるように定義されていますが、表示されません。表示したい場合は、wrap_contentをlistContainerとそのListViewに配置する必要があります。一方、ユーザが現在の曲を見ることができ、コマンドを持つことができるリストとフッターの場所を用意しようとしている場合、フッタレイアウトのalign_parent_bottom = "true"にする必要があります(ListViewのLinearLayoutの下に1つのRelativeLayout ) –

答えて

2

ListViewとその親LinearLayoutは、高さがmatch_parentであるという問題があります。つまり、これらの2つの要素は親要素と同じ高さになります。

画面の高さ全体を占めるビューの下にビューを配置しようとすると、画面の下のどこかに表示されます。

"正しい"解決策は、あなたが何をしようとしているのかに少し依存します。場合によっては、上から下に向かってレイアウトを考える必要があります。 layout_below =「@ + ID/listContainer」 `とlisContainer:あなたは`アンドロイドを使用する場合

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/bottom_view" /> 

    <TextView 
     android:id="@+id/bottom_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" /> 

</RelativeLayout> 
関連する問題