2010-12-13 9 views
0

レイアウトがポートレート/ランドスケープモードで表示される問題があります。基本的に、私のレイアウトの階層は、メイン(ワークスペースビュー) - > TextView +リストビュー(BaseAdapter) - >リストビューアイテムのようになります。私のビューでレイアウトのカットオフ/オフセットに問題がある

私の問題は、私がポートレートモードで起動している場合、私のアイテムが正しく表示されることです。しかし、デバイスを回転させると、レイアウト全体が画面の半分以上にシフトします(つまり、スイッチを切り替えると、ビューの左半分が完全に黒くなり、真の「左端」が画面の真ん中には、真ん中に並んでいるはずのアイテムが見えます)。これの裏側で、​​私が風景モードでポートレートモードに切り替えると、画面の右側の半分が完全に黒くなり、右端が真ん中にあり、右端のアイテムがそこで終わるのを見ることができます。ここで

は、私は(リストビューがBaseAdapterを使用しています)ワークスペース内... まず私の見解で働いているレイアウトです:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TextView android:id="@+id/tvMainChannel" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="Disconnected" 
     android:textColor="#FFFFFF" 
     android:singleLine="true"/> 

    <ListView android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
</LinearLayout> 

そして、ここで上記に膨張している私の個々のリストビュー項目ですリストビュー(水平配置では、各項目は左から右に表示されるはずです:画像、テキスト、イメージ):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:orientation="horizontal"> 

    <ImageView android:id="@+id/images" 
     android:layout_height="30dp" 
     android:layout_width="wrap_content" 
     android:paddingLeft="5px" 
     android:paddingRight="5px" 
     android:layout_alignParentLeft="true"/> 

    <ImageView android:id="@+id/images_ping" 
     android:layout_height="30dp" 
     android:layout_width="wrap_content" 
     android:paddingLeft="5px" 
     android:paddingRight="5px" 
     android:layout_alignParentRight="true"/> 

    <TextView android:id="@+id/text" 
     android:layout_height="30dp" 
     android:layout_width="wrap_content" 
     android:gravity="center_vertical" 
     android:text="Username" 
     android:textColor="#FFFFFF" 
     android:layout_toRightOf="@+id/images"/> 

</RelativeLayout> 

私は、リニアおよび相対間の周りのものを切り替え試みたが、私にはどこを得ませんしました。..何が起こったのかも知れません。彼はこれを引き起こします。

洞察力は大変ありがとうございます。

ありがとうございます!

EDIT:もう少し明確にするため、これは、ワークスペースを使用して、私のmain.xmlファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<com.test.MultiView xmlns:app="http://schemas.android.com/apk/res/com.test" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/mvMain" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    app:default_screen="0"> 

    <include android:id="@+id/main_rtb" layout="@layout/main_rtb" /> 
    <include android:id="@+id/main_listview" layout="@layout/main_listview" /> 
</com.test.MultiView> 

答えて

1

更新

この質問に対する実際の答えはとの問題でした最初は質問から省略され、stackoverflow上の他の場所のスレッドから適用されたカスタムトップレベルレイアウトコンポーネントです。詳細については、この回答へのコメントを参照してください。

オリジナルの答え(完全に間違った、しかし全く役に立たない)

問題は、あなたの項目のレイアウトである必要があります。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:orientation="horizontal"> 

    <ImageView android:id="@+id/images" 
     android:layout_height="30dp" 
     android:layout_width="wrap_content" 
     android:paddingLeft="5px" 
     android:paddingRight="5px" 
     /> 


    <TextView android:id="@+id/text" 
     android:layout_height="30dp" 
     android:layout_width="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center_vertical" 
     android:text="Username" 
     android:textColor="#FFFFFF" 
     /> 

    <ImageView android:id="@+id/images_ping" 
     android:layout_height="30dp" 
     android:layout_width="wrap_content" 
     android:paddingLeft="5px" 
     android:paddingRight="5px" 
     /> 

</LinearLayout> 

お知らせandroid:layout_weightの使用とandroid:layout_alignParentLeftandroid:layout_alignParentRight属性固有RelativeLayoutの除去:このように(「方向」属性はRelativeLayoutのために有効ではありません)のLinearLayoutを使用して提案します。

+0

感謝しています。これは動作していないようです。 TextView(@ + id/tvMainChannel)とListView(@android:id/list)は、x軸上でまだオフセットされていて、画面の右端から始まるポートレートビューの正確な幅左に行く(すなわち、x =右端を風景で始める - ポートレートの幅)。 – BCS

+0

ああそうです。マニフェストファイルにあなたのandroid:screenOrientationが設定されていますか? –

+0

マニフェストファイルに1つも設定されていません。しかし、私はアンドロイドを使用しています:configChanges = "keyboardHidden | orientation"画面の回転で自分の活動が破棄されるのを無効にする – BCS