2017-08-25 4 views
0

は、私が試したし、すべてではない場合には、十分に研究していると思うが、まだ私はちょうど右の2つのアイコンは、Androidエミュレータで表示ゲットすることができません。 奇妙なことは、デザインウィンドウに完全に表示されていることです。 さらに、同様の/同じGUIデザインでは、他のアクティビティですべての要素がうまく表示されます。オーバラップ要素のアンドロイドアクティビティの描画順序を制御する方法は?

は、私はすでにビューが画面上に重なってどのように私は、Android StudioのIDEの「コンポーネントツリー」に置くなどの要素の順序に依存していることを、よく知っています。エミュレータの右のアイコン欠落

enter image description here

:また

enter image description here

を、引き起こされる可能性がタイトルの行方不明中のアプリ、正しくアンドロイドStudioのデザインを探して

不適切な親アクティビティクラス(そのActivity、私はから変更しました。私はAS Designingツールでかなりの時間を過ごしました)。

  1. は、他にどのように私は要素の順序を制御することができ、彼らが重なったときに?
  2. それともアンドロイド奇妙なものをコンセプト私はまだをしないのですか?
  3. または、私のためにうまくいったので、何が変わったのですか?以下は

アプリ設計のためのコードのXMLです:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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" 
tools:context="com.sbm.bc.smartbooksmobile.ActivityTeacherHwkCheckByTask"> 

<ImageView 
    android:id="@+id/Problems" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_gravity="right" 
    android:layout_marginTop="57dp" 
    android:elevation="24dp" 
    android:visibility="visible" 
    app:srcCompat="@drawable/ic_problems" /> 

<ImageView 
    android:id="@+id/Talar" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentEnd="true" 
    android:layout_alignParentRight="true" 
    android:layout_gravity="right" 
    android:layout_marginRight="42dp" 
    android:layout_marginTop="57dp" 
    android:elevation="24dp" 
    android:visibility="visible" 
    app:srcCompat="@drawable/ic_menu_talar" /> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@android:color/holo_blue_dark" 
    android:fitsSystemWindows="true"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

</android.support.design.widget.AppBarLayout> 


<TableRow 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginTop="45dp" 
    android:background="@android:color/holo_blue_bright"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="40dp" 
     android:visibility="visible"> 

     <LinearLayout 
      android:id="@+id/ListOfTaskRows" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:elevation="24dp" 
      android:orientation="vertical" 
      android:visibility="visible"> 

     </LinearLayout> 
    </ScrollView> 

</TableRow> 

<TextView 
    android:id="@+id/Description" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="63dp" 
    android:allowUndo="false" 
    android:elevation="20dp" 
    android:ems="10" 
    android:text="Úloha" 
    android:textAlignment="center" 
    android:textSize="18sp" 
    android:visibility="visible" /> 

</RelativeLayout> 
+0

'ImageViews 'から' magrinTop = 57'を削除すれば、あなたが望むものを手に入れることができます。 –

+0

私のビューをトップレイヤー(つまり可視)レイヤーに強制的にレンダリングする方法をお考えですか? それはとても難しいとは思いません。そして、AndroidのGUIの設計は、恐ろしい混乱のいずれかであると信じられない:D –

答えて

0

私はあなたが彼らが重複する場合RelativeLayout子供たちはお互いの正面に描かれているという事実が欠けていると思います。あなたのケースでは、その幅はmatch_parentあるTableRowを持っている - それは親の幅を埋めるが、それは画像の後に追加されますと、それが彼らの前に描かれたの見解。

layout_alignEndアトリビュートを左端の画像のIDに設定することで、画像のためのスペースを残すようにテーブルの幅を制限することができます。

+0

こんにちは@ Stan0、あなたの先端のためのThanx。私は彼らが上にレンダリングすることを確認する前に(最後のビューとして)テーブルの行の下にそれらの2つのアイコンを配置しようとしました。驚くべきことに、これは決して私のために働いたことはありませんが、他のところは..私は何が間違っていますか?どのようなAndroidの「呪文」の呪文を唱えるのですか? :) layout_alignEndをより短い値に設定するとアイコンが表示されるだけでなく、プログラムで追加する行のリストが短くなります。私は余裕がありません、あなたが参照してください。 –

+1

@PeterなぜAndroidスタジオのレイアウトインスペクタを試して、アイコンが実際にどこにあるのか確認できませんか?これは正しい方向にあなたを導くかもしれません。 – stan0

+0

あなたの時間はThanx @ stan0です。私はあなたが見ることができるように、私のアイコンが正しい位置に置かれていることを確かめています。しかし、私はあなたのヒントを書き留めます! +1良いアイデアのために: –

0

まあ、それを信じるかどうか不足しているアイコンの理由は、私が前にそれを持っていたとして、私は無地の活動ではなくAppCompatActivityから私のアプリを導出することを決めたということでした。

だから私はextends AppCompatActivityにもう一度と私の活動を復元して見て..それは動作します。当然の

これも再び活動のタイトルを有効に。すでにその純粋なnonsence(別1)と私の時間無駄にカウントとして

enter image description here

(この問題が、他の多くの安っぽいデザインとADTで明らかにバグだけではなく)、私は」近い将来にネイティブのAndroid開発を中止し、代わりにXamarin/C#に戻すことにしました。(私は4年前にC#XamarinからAndroid開発を開始しましたが、その時点でHWアクセスのサポートが不十分なために残っていました)。 Howhg!

+0

私のようなADTについて等しく怒っている人のための良い読書: https://www.reddit.com/r/androiddev/comments/2hlw20/am_i_retarded_or_android_development_is_a_mess/ 私はトップタイトルが好きです「私は遅れているのか、Androidの開発は混乱しているのだろうか? あなたの文句を追加してください:D –

0

"材料設計" のユーザーの場合:

別の簡単な回避策は、"elevation" property of any GUI elementを使用しています。 この値を大きくすると、この要素をより低い高度のものよりも前景に描画することができます。 ボーナス(または欠点)として、上昇したGUI要素に沿って、あなたが上がった程度に応じて陰影をつけます。

この機能がレンダリング時間をどれくらい延長するのだろうか。 別の質問は、サポートされている最小限のAPIバージョンです。 (すぐに見つかりませんでした..)

関連する問題