I have a linearlayout with a table and a button, the table has EditText and TextView, my problem is with EditText, which is too small
<LinearLayout
android:orientation="vertical"
android:layout_width="300dip"
android:layout_height="350dip"
android:background="#drawable/background_resto"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
>
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity ="center"
>
<TextView
android:id="#+id/nameRegister"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:text="Nombre"
android:layout_marginLeft="10dip"
/>
</TableRow>
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity ="center"
>
<EditText
android:id="#+id/registerName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
/>
</TableRow>
</TableLayout>
<Button
android:id="#+id/butRegister"
android:layout_height="35dip"
android:layout_width="wrap_content"
android:text="Enviar"
/>
</LinearLayout>
</LinearLayout>
I would like the EditText fix the 300dip that the first linearLayout, but I don't get it, what should I do?
Try this, add to TableLayout stretchColumns param
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:stretchColumns="1"
>
Related
There are two TableRows in the TableLayout, and each TableRow contains two TextViews:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TableRow
android:id="#+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" >
<TextView
android:id="#+id/textTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/textTitle"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp" />
</TableRow>
<TableRow
android:id="#+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="63dp"
android:layout_marginRight="10dp" >
<TextView
android:id="#+id/textHall"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="#+id/textPrice"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp" />
</TableRow>
</TableLayout>
If textHall contains a short Word, textTitle (Some Text) located at the correct position:
But if textHall contains a long Second Word, before textTitle (Some Text) appears a large indentation:
What is the reason?
Thanks.
You should give weight for your layouts and rows. I adapted your code. Here is the one that should be.
<TableRow
android:id="#+id/tableRow1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:weightSum="2" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:orientation="horizontal" >
<TextView
android:id="#+id/textTime"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="10:30" />
<TextView
android:id="#+id/textTitle"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="left"
android:layout_marginLeft="10dp"
android:text="Some Text" />
</LinearLayout>
</TableRow>
<TableRow
android:id="#+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="63dp"
android:layout_marginRight="10dp"
android:layout_weight="1"
android:weightSum="2" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:orientation="horizontal" >
<TextView
android:id="#+id/textHall"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="Some Word" />
<TextView
android:id="#+id/textPrice"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_marginLeft="10dp"
android:layout_weight="1"
android:text="200" />
</LinearLayout>
</TableRow>
You can put any margin value for your second row as you wish.
Hope this may help.
Your textHall and textTime both fall into same column and the width of that column is set to the width of textHall(as this is having more width) as a result your textTime textview's width is increasing when you increase text in textHall.
I would like to create in my application statistics from a'la tiles metro. Unfortunately TextView hasn't equal width, as it solved?
This is my layout
Use android:weightSum and android:layout_weight
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:weightSum="4" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="1dp"
android:layout_weight="2"
android:background="#B0B0B0" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginRight="1dp"
android:layout_weight="2"
android:background="#B0B0B0" />
</TableRow>
</TableLayout>
I have a linearLayout inside a tableRow, this linearLayout contains a chart that i would like to display for my app.
I read some thread saying that the child of the tableRow not need to specify its width and height, so I did it, but the chart is not displayed. If I specify the linearLayout to be width=fill_parent and height=200dp, then the linearlyLayout is only fill 1/3 of the tableRow.
<?xml version="1.0" encoding="UTF-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow
android:id="#+id/tableRow1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Record"
android:textSize="18dp"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
</TableRow>
<TableRow
android:id="#+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:text="Name:"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:ems="10"
android:singleLine="true" />
</TableRow>
<TableRow
android:id="#+id/tableRow3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:text="Date:"
android:textStyle="bold"
android:typeface="serif" >
</TextView>
<TextView
android:id="#+id/editRecordDate"
android:layout_width="0dp"
android:layout_weight="0.7"
android:layout_height="wrap_content" />
</TableRow>
<TableRow
android:id="#+id/tableRow9"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="#+id/soundaomplitude_graphViewLinearLayout"
android:paddingTop="4dip" > //if I specify nothing then nothing is displayed, if I set width = fill_parent and height = 200dp, then only 1/3 of the space is occupied
</LinearLayout>
</TableRow>
<TableRow
android:id="#+id/tableRow10"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="#+id/saveEditRecord"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:text="Save" />
<Button
android:id="#+id/deleteEditRecord"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:text="Delete" />
<Button
android:id="#+id/cancelEditRecord"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight=".3"
android:text="Cancel" />
</TableRow>
</TableLayout>
</ScrollView>
I found out just set the weight = 1(or any number) for the linearLayout
<LinearLayout
android:id="#+id/soundaomplitude_graphViewLinearLayout"
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="1"
android:paddingTop="4dip" />
It seems that a TableRow acts as a LinearLayout, hence nesting one right inside a TableRow seems redundant. In Eclipse also, it says, that it is "useless". Therefore, you can just include your view (any view) directly inside the TableRow, instead of the LinearLayout. If it is not showing, then, there is probably some other problems.
Read again on how TableLayout manages its content. Specifically note that it disregards the layout_width of child views.
Picture of the android interface: http://tinypic.com/view.php?pic=avht6w&s=6
As seen in the picture above I want a small borders at the bottom and top of the white listView. The problem is, as I set the tableRow to be android:paddingBottom="20dp" the border never gets displayed at the bottom. It seems like, if the listviews height is big enough, nothing else after it will get displayed (See code example below to understand).
I have tested some different approaches to solve the problem, one is setting the paddingBottom attribute in the next TableRow (the borders tableRow) but it will only work if the listView's height is exact of the screens height and not to big.
Why do I set the listView's height to a fixed number like 415dp? Well, it is due to another problem I do not know how to solve. If I for example set the listViews height to fill_parent the background will only cover the number of items in the list. I always want the lists background to be filled down to 20dp from the bottom of the interface.
If anyone has some ideas how I can managed to display the border at the bottom and always have the lists background visible, even if it is not filled with items, please post your ideas! /thanx alot!
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#drawable/orginalbild"
android:gravity="center|top"
android:stretchColumns="1"
android:weightSum="1.0"
android:fillViewport="true">
<TableRow
android:background="#000000"
>
<TextView
android:layout_marginTop="0.15dp"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="#999999"
android:layout_weight="1">
</TextView>
</TableRow>
<TableRow
android:background="#999999"
>
<TextView
android:background="#999999"
android:id="#+id/show_task_feedback_title"
android:layout_width="0dip"
android:layout_height="28dp"
android:layout_weight="0.8"
android:text="#string/LatestFeedbackTitle"
android:textColor="#ffffff"
android:textSize="17dp"
android:shadowColor="#FFFFFF"
android:layout_marginBottom="0.15dp"
android:textAppearance="?android:attr/textAppearanceMedium">
</TextView>
<TextView
android:layout_width="0dip"
android:layout_height="28dp"
android:layout_gravity="center"
android:layout_weight="0.08" >
</TextView>
<Button
android:id="#+id/latest_feedback_help_button"
android:layout_width="0dip"
android:layout_height="28dp"
android:layout_gravity="center"
android:background="#drawable/help_button"
android:layout_weight="0.12"
android:layout_marginBottom="0.15dp"
/>
</TableRow>
<TableRow
android:background="#212421">
<TextView
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#ffffff"
android:layout_marginTop="0.15dp"
android:layout_weight="1">
</TextView>
</TableRow>
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.25" />
</TableRow>
<TableRow
android:paddingLeft="24dp"
android:paddingRight="24dp"> <--------THE BLACK BRODER AT THE TOP OF THE LISTVIEW
<TextView
android:background="#000000"
android:layout_width="0dip"
android:layout_height="0.5dp"
android:layout_weight="1" >
</TextView>
</TableRow>
<TableRow
android:paddingLeft="24dp"
android:paddingRight="24dp"
android:paddingBottom="20dp" <------(paddingBottom attribute which causes the problem)
>
<ListView
android:background="#ffffff"
android:id="#+id/bookmarks_list"
android:layout_width="0dip"
android:layout_height="415dp"
android:gravity="left"
android:layout_weight="1"
/>
</TableRow>
<TableRow> <---THE BLACK BRODER AT THE BOTTOM OF THE LISTVIEW(not being displayed)
<TextView
android:background="#000000"
android:layout_width="0dip"
android:layout_height="0.5dp"
android:layout_weight="1" >
</TextView>
</TableRow>
</TableLayout>
See if this helps.
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#drawable/orginalbild"
android:fillViewport="true"
android:gravity="center|top"
android:orientation="vertical"
android:stretchColumns="1"
android:weightSum="1.0" >
<TableRow android:background="#000000" >
<TextView
android:layout_width="fill_parent"
android:layout_height="2dp"
android:layout_marginTop="0.15dp"
android:layout_weight="1"
android:background="#999999" >
</TextView>
</TableRow>
<TableRow android:background="#999999" >
<TextView
android:id="#+id/show_task_feedback_title"
android:layout_width="0dip"
android:layout_height="28dp"
android:layout_marginBottom="0.15dp"
android:layout_weight="0.8"
android:background="#999999"
android:shadowColor="#FFFFFF"
android:text="#string/LatestFeedbackTitle"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#ffffff"
android:textSize="17dp" >
</TextView>
<TextView
android:layout_width="0dip"
android:layout_height="28dp"
android:layout_gravity="center"
android:layout_weight="0.08" >
</TextView>
<Button
android:id="#+id/latest_feedback_help_button"
android:layout_width="0dip"
android:layout_height="28dp"
android:layout_gravity="center"
android:layout_marginBottom="0.15dp"
android:layout_weight="0.12"
android:background="#drawable/help_button" />
</TableRow>
<TableRow android:background="#212421" >
<TextView
android:layout_width="fill_parent"
android:layout_height="1dp"
android:layout_marginTop="0.15dp"
android:layout_weight="1"
android:background="#ffffff" >
</TextView>
</TableRow>
<TableRow>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.25" />
</TableRow>
<TableRow
android:paddingTop="0.5dp"
android:paddingBottom="0.5dp"
android:background="#000000"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:layout_marginBottom="20dp"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ListView
android:id="#+id/bookmarks_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#ffffff"
android:gravity="left"
android:entries="#array/listitems" />
</TableRow>
</TableLayout>
My app contains header,edittext,listview and footer
It works fine...but when soft keyboard is open for edittext my footer comes up.
I had also set android:windowSoftInputMode="adjustPan" in manifest.
my layout is as below
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#drawable/middle_bg"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical" >
<RelativeLayout
android:id="#+id/header1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<include
android:id="#+id/header2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
layout="#layout/header" />
</RelativeLayout>
<TableLayout
android:id="#+id/tbllayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="#id/header1"
>
<TableRow
android:layout_gravity="left"
android:background="#drawable/tit_bg" >
<TextView
android:id="#+id/lbltit"
android:layout_gravity="center_vertical"
android:layout_weight="2"
android:gravity="center"
android:text="Registered Websites"
android:textSize="20dp"
android:textStyle="bold" />
<Button
android:id="#+id/btnAddNewRege"
android:layout_gravity="center_vertical"
android:layout_weight="3"
android:background="#drawable/plus"
android:gravity="left" />
</TableRow>
<TableRow android:layout_width="fill_parent" >
<View
android:id="#+id/vwhr1"
android:layout_width="fill_parent"
android:layout_height="10dip"
android:layout_span="2" />
</TableRow>
<TableRow>
<EditText
android:id="#+id/txtSearch"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="#drawable/roundedtextview"
android:hint="Search"
android:textSize="13dp"
android:width="280sp"
/>
<Button
android:id="#+id/btnSearchMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#drawable/search"
android:gravity="center" />
</TableRow>
<TableRow android:layout_width="fill_parent" >
<View
android:id="#+id/vwhr"
android:layout_width="fill_parent"
android:layout_height="10dip"
android:layout_span="2" />
</TableRow>
</TableLayout>
<LinearLayout
android:id="#+id/tblftr"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:isScrollContainer="true"
>
<TableLayout
android:id="#+id/btnpanel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="*" >
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#android:color/black"
>
<Button
android:id="#+id/btnSetting"
android:layout_weight="1"
android:background="#drawable/settings"
android:width="40dp" />
<Button
android:id="#+id/btnAboutUs"
android:background="#drawable/about_us"
android:width="100dp" />
<Button
android:id="#+id/btnFeedback"
android:background="#drawable/feedback"
android:width="100dp" />
</TableRow>
<TableRow>
<include
android:id="#+id/include1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
layout="#layout/footer" />
</TableRow>
</TableLayout>
</LinearLayout>
<ListView
android:id="#+id/lst"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="#id/tblftr"
android:layout_below="#id/tbllayout"
android:cacheColorHint="#android:color/transparent"
android:layout_centerHorizontal="true" >
</ListView>
</RelativeLayout>
pls guide
Thanks & Regards
Mita
You could try and put your RelativeLayout in a ScrollView. This might not worked as intended if the ListView doesn't fill the screen since you would have to declare layout_width="wrap_content" for your RelativeLayout inside the ScrollView and that would bring your footer right bellow the ListView.
Try it and see if it fits your model.