user790431
user790431

Reputation:

Not able to see views on screen

My Login screen layout seems like this:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/login_layout" 
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:background="#ffffff">

<include 
android:id="@+id/headerlayout" 
layout="@layout/headerview"
android:layout_height="50dip" 
android:layout_width="fill_parent" />

<ImageView 
android:id="@+id/imgIcon" 
android:src="@drawable/icon"
android:layout_width="wrap_content" 
android:layout_height="wrap_content" />

<TextView
android:id="@+id/txtUserName"
android:layout_width="fill_parent"
android:layout_height="80dip"
android:lines="1"
android:textColor="#000000"
android:textStyle="bold"
android:textSize="16dip"
android:text="User Name"/>
</LinearLayout>  

However I am not able to see ImageView and TextView. Only headerview is visible and white layout below it. Why is it so?

Thanks,
Stone

Upvotes: 0

Views: 56

Answers (2)

Adil Soomro
Adil Soomro

Reputation: 37729

just add

android:orientation="vertical"

in your <LinearLayout> tag.

Edit: By default the orientation is set to Horizontal means every component will be added horizontally, since you are using "fill_parent" to the header, so it covers all the place(width) and leave no room for other components to appear. So when you add vertical all components are placed vertically. So enough room is available for components to layout themselves.More detail here

Upvotes: 1

Kartik Domadiya
Kartik Domadiya

Reputation: 29968

Bydefault LinearLayout aligns all children in a single direction horizontally (if you dont specify android:orientation ) .

So here in your case it was adding views horizontally. Your header portion took full width of the screen (as you have specified android:layout_width="fill_parent" in include tag)and no space is left for that TextView and ImageView.

You just have to add orientation tag in LinearLayout and set its value to vertical. ie android:orientation="vertical".

LinearLayout from Android Docs says

LinearLayout aligns all children in a single direction — vertically or horizontally, depending on how you define the orientation attribute. All children are stacked one after the other, so a vertical list will only have one child per row, no matter how wide they are, and a horizontal list will only be one row high (the height of the tallest child, plus padding). A LinearLayout respects margins between children and the gravity (right, center, or left alignment) of each child.

Upvotes: 0

Related Questions