2016-04-29 12 views
1

私はアンドロイドアプリを作成しており、ユーザーインターフェースに問題があります。Androidスタジオ:デバイスのボタンの下にレイアウトがあります

私はここのスタイリングとのチャットのセクションがあります。しかし

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="#efefef" 
android:orientation="vertical" 
tools:context=".FragmentChat" 
android:id="@+id/chat_layout" 
android:layout_alignParentStart="true" 
> 

<ListView 
    android:id="@+id/messages" 
    android:layout_width="match_parent" 
    android:layout_height = "fill_parent" 
    android:height = "0dp" 
    android:stackFromBottom="true" 
    android:transcriptMode="alwaysScroll" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentStart="true" 
    android:layout_above="@+id/linearLayout" /> 
    <!-- 
    android:background="@null" 
    android:divider="@null" 
    --> 


    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:weightSum="5" 
     android:id="@+id/linearLayout" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentStart="true"> 

    <EditText 
     android:id="@+id/message" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="4" /> 

    <Button 
     android:id="@+id/send" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:text="Send" /> 

    </LinearLayout> 
</RelativeLayout> 

を。私はエミュレータでアプリケーションを実行しようとすると、ビューの下側には、ナビゲーションボタン

like this.

の下に拡張しかし、私はそれになりたいことは、このようなものです:に示すように、

this Android Studioのレイアウトプレビューセクション。

レイアウトのすべてのメンバーに異なるlayout_heightという値で多くの反復を試しました。実際にプレビューが正しく表示されても、実際にEditViewを実行してボタンがナビゲーションボタンの下に残っています。これを整理するのを助けることができますか?

編集:問題が見つかりました。ビューはタブ付きであるため、layout_height="match_parent"は、編集テキストとボタンを最も高いタブフラグメントの一番下のポイントに置きます。しかし、まだ解決策を見つけることができません。

+0

RelativeLayoutの代わりにrootの基本FrameLayoutを使用してください。その後、静的marginBottomをリストに設定します。また、LinearLayoutの重力底を作成します。 ListViewは動的な高さのため、UI関係の信頼できるコンポーネントではありません。あなたのコードでは、ListViewがLinearLayoutをオーバーライドしています。 – asozcan

+0

android:stackFromBottom = "true"をListViewから削除します。 – Crash

+0

これらのどちらも悲しいことには役に立ちません – Waylander

答えて

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

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    > 

    <ListView 
     android:layout_weight="1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     > 

     <EditText 
      android:layout_weight="1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      /> 

    </LinearLayout> 
</LinearLayout> 
+0

問題が見つかりました。ビューはタブ付けされているので、 'layout_height =" match_parent "'は編集テキストとボタンを最も高いタブフラグメントの一番下のポイントに置きます。しかし、まだ解決策を見つけることができません。 – Waylander

関連する問題