Good day
I am new to android development and I am trying to add 2 containers for fragments in the main xml file, that will each use half of the screen in landscape, but everything I try does not work, please help.
<android.support.constraint.ConstraintLayout 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.example.newProject.MainActivity">
<FrameLayout
android:id="#+id/fragment_container"
android:layout_width="221dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="#+id/fragments_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"/>
thank you!
I hope this will work for you
For landscape mode
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2"
tools:context=".MainActivity">
<FrameLayout
android:id="#+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<FrameLayout
android:id="#+id/fragments_container1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
In xml add
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="20dp"
android:paddingLeft="20dp"
android:orientation="vertical"
android:paddingRight="20dp"
android:paddingTop="20dp"
android:weightSum="2"
tools:context=".MainActivity" >
<FrameLayout
android:id="#+id/frame1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></FrameLayout>
<FrameLayout
android:id="#+id/frame2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"></FrameLayout>
</LinearLayout>
in activity class:
public void loadFragments(){
Fragment1 fragment1 = new Fragment1();
Fragment2 fragment2 = new Fragment2();
loadFragment(this,fragment1);
loadFragmentTwo(this,fragment2);
}
public static void loadFragment(AppCompatActivity activity, Fragment newFragment) {
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame1, newFragment, getTagForFragment(newFragment)).commitAllowingStateLoss();
}
public static void loadFragmentTwo(AppCompatActivity activity, Fragment newFragment) {
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame2, newFragment, getTagForFragment(newFragment)).commitAllowingStateLoss();
}
public static String getTagForFragment(Fragment fragment) {
Log.d("fragment name", "fragment name " + fragment.getClass().getSimpleName());
return fragment.getClass().getSimpleName();
}
Try this xml code:
<android.support.constraint.ConstraintLayout
android:id="#+id/main_content"
android:layout_height="match_parent"
android:layout_width="match_parent">
<android.support.constraint.Guideline
android:id="#+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5" />
<FrameLayout
android:id="#+id/frameLayout2"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="#+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<FrameLayout
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="#+id/frameLayout2"/>
</android.support.constraint.ConstraintLayout>
Related
I have this code:
findViewById(R.id.button2).setOnClickListener(new View.OnClickListener()
{
//Se aggiungo un fragment A al container X e aggiungo il fragment B allo stesso container, il fragment B andrĂ sopra
//il fragment A
#Override
public void onClick(View v)
{
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if(ko==0)
{
MyFragment fragment = MyFragment.createFragment(0);
fragmentTransaction.add(R.id.formazione3,fragment);
ko++;
}
else if(ko==1)
{
MyFragment fragment = MyFragment.createFragment(1);
fragmentTransaction.add(R.id.formazione2,fragment);
ko++;
}
else if(ko==2)
{
MyFragment fragment = MyFragment.createFragment(2);
fragmentTransaction.add(R.id.moduli2,fragment);
ko++;
}
else if(ko==3)
{
MyFragment fragment = MyFragment.createFragment(1);
fragmentTransaction.add(R.id.moduli5,fragment);
}
fragmentTransaction.commit();
}
});
Well, I'm experiencing the order of addition of fragments. I have 4 fragments and I don't understand why some fragments, when I add them, go under the bigger fragment, while other ones go on the bigger fragment in their container.
formazione3>formazione2 (formazione2 is contained in formazione3)
moduli2>moduli5 (moduli5 is contained in moduli2, moduli2 is contained in part in formazione3)
When I add the second fragment, it doesn't show, I think that it goes under the previous fragment, so it goes under the bigger. When I add the third fragment, it goes in part under the first fragment, the first is bigger. When I add the fourth fragment, it goes on the third, but the third is bigger than the fourth and above all the the fourth is contained in the third. How does it work? I don't understand at all!
This is the layout:
<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="match_parent"
tools:context="com.example.utente.fantacalcio.FormazioniActivity"
android:weightSum="1"
android:id="#+id/activity_formazioni_layout">
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
android:id="#+id/button2" />
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="#+id/button" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<RelativeLayout
android:layout_width="107dp"
android:layout_height="match_parent"
android:id="#+id/moduli">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/formazione">
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="92dp"
android:layout_height="match_parent"
android:id="#+id/moduli1">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/formazione1">
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="71dp"
android:layout_height="match_parent"
android:id="#+id/moduli2">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/formazione2">
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="51dp"
android:layout_height="match_parent"
android:id="#+id/moduli3">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/formazione3">
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="29dp"
android:layout_height="match_parent"
android:id="#+id/moduli4">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/formazione4">
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="11dp"
android:layout_height="match_parent"
android:id="#+id/moduli5">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/formazione5">
</RelativeLayout>
</LinearLayout>
Your parent layout is a RelativeLayout , the default behavior for this layout is that first child view is under the last child view.
In your xml this child :
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="51dp"
android:layout_height="match_parent"
android:id="#+id/moduli3">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/formazione3">
</RelativeLayout>
</LinearLayout>
is under this child view :
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="71dp"
android:layout_height="match_parent"
android:id="#+id/moduli2">
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#+id/formazione2">
</RelativeLayout>
</LinearLayout>
so when the views are inflating , this is the opposite formazione3 is over formazione2.
Moreover your LinearLayout have these attributes :
android:layout_width="match_parent"
android:layout_height="match_parent"
so they take all the place available.
Try to set fixe size in dp instead of match_parent to see what's really happen.
Hope this helps.
Sorry for my poor english.
I want my screen to show a total of 3 cards distributed evenly taking up the whole space but nothing I try seems to be working. The cards are being loaded with the use of a RecyclerView/viewHolder.
I've tried two solutions.
Solution 1:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="#+id/card_view_disciplines"
card_view:cardCornerRadius="4dp"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="3"
>
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:id="#+id/disciplineName"
android:textSize="25sp"
android:layout_weight="1"
/>
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
and Solution 2:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="#+id/card_view_disciplines"
card_view:cardCornerRadius="4dp"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="3"
>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="#+id/disciplineName"
android:textSize="25sp"
android:layout_weight="1"
/>
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
can someone please help?
Thanks in advance!
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:weight_sum="3"
android:padding="16dp">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
app:cardBackgroundColor="#000">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:text="Card 1"
android:textColor="#FFF"
android:layout_gravity="center"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:padding="16dp"
android:background="#000">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:text="Card 2"
android:layout_gravity="center"/>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
app:cardBackgroundColor="#000">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40sp"
android:text="Card 3"
android:textColor="#FFF"
android:layout_gravity="center"/>
</android.support.v7.widget.CardView>
</LinearLayout>
I hope this will work as you expected:
<LinearLayout
android:id="#+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#888888"
android:orientation="vertical"
android:weightSum="3">
<android.support.v7.widget.CardView
android:id="#+id/cardView1"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="2dp"
android:layout_weight="1"
card_view:cardBackgroundColor="#000088"
card_view:cardCornerRadius="5dp"
card_view:cardElevation="5dp">
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="#+id/cardView2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="2dp"
android:layout_weight="1"
card_view:cardBackgroundColor="#008800"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="5dp">
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="#+id/cardView3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="2dp"
android:layout_weight="1"
card_view:cardBackgroundColor="#880000"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="5dp">
</android.support.v7.widget.CardView>
</LinearLayout>
MainActivity.java
CardView cardView1 = (CardView) findViewById(R.id.cardView1);
CardView cardView2 = (CardView) findViewById(R.id.cardView2);
CardView cardView3 = (CardView) findViewById(R.id.cardView3);
cardView1.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "CardView1", Toast.LENGTH_SHORT).show();
}
});
cardView2.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "CardView2", Toast.LENGTH_SHORT).show();
}
});
cardView3.setOnClickListener(new View.OnClickListener() {
#Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "CardView3", Toast.LENGTH_SHORT).show();
}
});
I am creating a project which has 4 tabs , But when i go to the second tab the content of the first tab persists , and when i go to the third tab the content of the previous two tabs persists.
The tab main xml:
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="#android:id/tabhost"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TabWidget
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="#android:id/tabs"
> </TabWidget>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="#android:id/tabcontent"
>
</FrameLayout>
</LinearLayout>
</TabHost>
The java code of the tabmain:
package com.igloo.icebucket;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class TabMain extends TabActivity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_main);
TabHost th=(TabHost) findViewById(android.R.id.tabhost);
th.setup();
TabSpec t1=th.newTabSpec("Videos");
TabSpec t2=th.newTabSpec("About challenge");
TabSpec t3=th.newTabSpec("About ALS");
TabSpec t4=th.newTabSpec("About IGLOO");
t1.setIndicator("Videos",getResources().getDrawable(R.drawable.ic_launcher));
Intent i1=new Intent(getApplicationContext(),VideoActivity.class);
t1.setContent(i1);
t2.setIndicator("About challenge",getResources().getDrawable(R.drawable.ic_launcher));
Intent i2=new Intent(getApplicationContext(),AboutChallenge.class);
t2.setContent(i2);
t3.setIndicator("About ALS",getResources().getDrawable(R.drawable.ic_launcher));
Intent i3=new Intent(getApplicationContext(),Aboutals.class);
t3.setContent(i3);
t4.setIndicator("About IGLOO",getResources().getDrawable(R.drawable.ic_launcher));
Intent i4=new Intent(getApplicationContext(),Aboutigloo.class);
t4.setContent(i4);
th.addTab(t1);
th.addTab(t2);
th.addTab(t3);
th.addTab(t4);
}
}
The xml of the first tab:
<RelativeLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0067ae"
android:paddingBottom="#dimen/activity_vertical_margin"
android:paddingLeft="#dimen/activity_horizontal_margin"
android:paddingRight="#dimen/activity_horizontal_margin"
android:paddingTop="#dimen/activity_vertical_margin"
tools:context=".VipActivity" >
<LinearLayout
android:id="#+id/titlebar"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_centerHorizontal="true"
android:background="#e2e2e2"
android:gravity="center_horizontal|center_vertical"
android:orientation="vertical" >
<TextView
android:id="#+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="#string/videos"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#0067ae" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="#id/titlebar"
android:orientation="vertical" >
<ListView
android:id="#+id/videoList"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="15dp"
android:layout_weight="1"
android:background="#f8f8f8" >
</ListView>
</LinearLayout>
</RelativeLayout>
The xml of the second tab:
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="#+id/root_aboutchallenge"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ABOUT CHALLENGE"
/>
</LinearLayout>
The xml of the third tab:
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="#+id/root_aboutals"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ABOUT ALS"
/>
</LinearLayout>
The xml of the fourth tab:
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="#+id/root_aboutigloo"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ABOUT IGLOO"
/>
</LinearLayout>
Please help!!
I have two layouts, this is the parent layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="#+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="#+id/layoutTop"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="90"
android:background="#FF0000"
android:gravity="center"
android:orientation="vertical" >
</LinearLayout>
<LinearLayout
android:id="#+id/layoutBottom"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="10"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:id="#+id/txtTimer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Time: 00:00:00"
android:textColor="#FF0000"
android:textSize="25dip" />
</LinearLayout>
</LinearLayout>
And this is the child layout:
<?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:background="#00FF00"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="Hello World" />
</LinearLayout>
</LinearLayout>
However, when I put the child view in id/layoutTop, it doesn't fill the parent like it's supposed to. This is the result:
This is the code where the id/layoutTop's content is replaced: (This gets called via an event from the child be removed)
public void OnVictory(GamePanel sender, GamePanel next) {
if(next != null){
gamePanel.removeView(sender);
gamePanel.addView(next);
next.triggerOnDisplay();
}else{
Toast.makeText(getBaseContext(), "Victory!", Toast.LENGTH_LONG).show();
}
}
sender is the old view there, next is the one to be put in place, and gamePanel is id/layoutTop
And this is how the inner layout is created:
private void initialize() {
LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layoutInflater.inflate(R.layout.appetizerfakeout,this);
}
Why is my inner view not filling the parent?
I am getting the following error when I try to launch an activity containing a tabhost.
08-25 16:51:42.551:
ERROR/AndroidRuntime(27863):
java.lang.RuntimeException: Unable to
start activity
ComponentInfo{com.paratransit/com.paratransit.jobDialog}:
java.lang.RuntimeException: Could not
create tab content because could not
find view with id 2131165185
This is my code. Can anyone help?
Java
public Class jobDialog extends TabActivity {
TabHost tabs;
int jobCurrentTab = -1;
#Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
setContentView(R.layout.job_dialog);
tabs = getTabHost();
tabs.setup();
setupTabs();
}
public void setupTabs()
{
TabSpec tspec1 = tabs.newTabSpec("First Tab");
tspec1.setIndicator("Summary", getResources().getDrawable(R.drawable.tab_main)).setContent(R.id.jobDetail1);
tabs.addTab(tspec1);
TabSpec tspec2 = tabs.newTabSpec("Second Tab");
tspec2.setIndicator("Details", getResources().getDrawable(R.drawable.tab_message)).setContent(R.id.jobDetail2);
tabs.addTab(tspec2);
TabSpec tspec3 = tabs.newTabSpec("Third Tab");
tspec3.setIndicator("Notes", getResources().getDrawable(R.drawable.tab_jobs)).setContent(R.id.jobDetail3);
tabs.addTab(tspec3);
XML
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="#android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="#android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="#android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
<LinearLayout
android:id="#+id/jobDetail1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</LinearLayout>
<LinearLayout
android:id="#+id/jobDetail2"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</LinearLayout>
<LinearLayout
android:id="#+id/jobDetail3"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</LinearLayout>
</LinearLayout>
</TabHost>
I think the 3 linear layouts, jobDetail1->3 should be within the FrameLayout xml element. The point of the FrameLayout is that all of the views are on top of each other, and thus the tab manager can decide which view to show.
I think you're getting this error because you are not including the LinearLayout inside the FrameLayout, besides I think you need to put some element view inside the LinearLayout's.
Something like this
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="#+id/establecimientoView">
<TabHost
android:id="#android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TabWidget android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="#android:id/tabs" />
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="#android:id/tabcontent" >
<LinearLayout
android:id="#+id/tabIdEst"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include layout="#layout/identificacion_establecimiento"/>
</LinearLayout>
<LinearLayout
android:id="#+id/tabRefGeo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include layout="#layout/referencia_geografica"/>
</LinearLayout>
<LinearLayout
android:id="#+id/tabUbicEstablecimiento"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include layout="#layout/ubicacion_establecimiento"/>
</LinearLayout>
<LinearLayout
android:id="#+id/tabVialidades"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<include layout="#layout/entre_vialidades"/>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>