I can not access TabHost content

2

This time I have a problem with a TabHost that I created and initialized, it has 3 tabs, it turns out that the contents of the first 2 tabs I can not position the focus by clicking on their EditText let alone click on the buttons they have (It seems that the content is uneditable, I do not know), but with the content of the tab 3, if I can generate events, position focus, etc. I do not know what happens or what they advise me to do, I appreciate your attention and help.

TabHost XML code:

    <TabHost
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/TabHost">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <LinearLayout
                    android:id="@+id/DatosVehiculo"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">

                    <TextView
                        android:text=""
                        android:layout_width="283dp"
                        android:layout_height="wrap_content"
                        android:textColor="#63183F"
                        android:id="@+id/lblRelleno" />

                    <TextView
                        android:text="Típo de Vehículo"
                        android:layout_width="283dp"
                        android:layout_height="wrap_content"
                        android:textColor="#63183F"
                        android:id="@+id/tipoVehiculo" />
                    <EditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:inputType="textPersonName"
                        android:ems="10"
                        android:id="@+id/editTipoVehiculo"
                        android:hint="Típo de Vehículo" />                       

                </LinearLayout>


                <!--Seccion de datos de los operarios-->
                <ScrollView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/scroll1">
                    <LinearLayout
                        android:id="@+id/DatosOperarios"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:id="@+id/lblRelleno1" />

                        <TextView
                            android:text="Cédula:"
                            android:layout_width="match_parent"
                            android:textColor="#63183F"
                            android:layout_height="wrap_content"
                            android:id="@+id/cedulaOperario" />

                        <EditText
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:inputType="number"
                            android:ems="10"
                            android:id="@+id/txtCedulaOperario"
                            android:hint="Cédula del Operario" />



                        <!--Contenedor Horizontal de los botones-->
                        <LinearLayout
                            android:id="@+id/contenedorBotones"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:orientation="horizontal">

                            <Button
                                android:text="Añadir Operario"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/tabHost"
                                android:layout_alignParentLeft="true"
                                android:layout_alignParentStart="true"
                                android:layout_marginTop="27dp"
                                android:id="@+id/Anadir"
                                android:layout_alignParentRight="true"
                                android:layout_alignParentEnd="true"                                    style="@style/Widget.AppCompat.Button.Colored"                                    android:onClick="AgregarFilaTablaOperarios"/>

                            <Button
                                android:text="Limpiar Formulario"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/tabHost"
                                android:layout_alignParentLeft="true"
                                android:layout_alignParentStart="true"
                                android:layout_marginTop="27dp"
                                android:id="@+id/Limpiar"
                                android:layout_alignParentRight="true"
                                android:layout_alignParentEnd="true"                                    style="@style/Widget.AppCompat.Button.Colored"                                    android:onClick="LimpiarFormularioOperario"/>

                        </LinearLayout>

                        <!--Tabla donde se adicionan los operarios de la cuadrilla-->
                        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
                            android:id="@+id/tblOperarios"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:stretchColumns="1" >

                            <TableRow
                                android:id="@+id/Cabecera"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content" >

                                <TextView
                                    android:id="@+id/ColumnaCedula"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:padding="5px"
                                    android:text="CÉDULA"
                                    android:textColor="#63183F"
                                    android:textSize="18dp" />

                                <TextView
                                    android:id="@+id/ColumnaNombre"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_gravity="center_horizontal"
                                    android:padding="5px"
                                    android:text="NOMBRE OPERARIO"
                                    android:textColor="#63183F"
                                    android:textSize="18dp" />

                                <TextView
                                    android:id="@+id/ColumnaCargo"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:padding="5px"
                                    android:text="CARGO"
                                    android:textColor="#63183F"
                                    android:textSize="18dp" />
                            </TableRow>

                            <TableRow
                                android:id="@+id/SeparadorCabecera"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content" >
                                <FrameLayout
                                    android:id="@+id/LineaCabecera"
                                    android:layout_width="fill_parent"
                                    android:layout_height="2px"
                                    android:layout_span="6"
                                    android:background="@color/colorPrimaryDark" >
                                </FrameLayout>
                            </TableRow>
                        </TableLayout>

                    </LinearLayout>
                </ScrollView>

                <!--Seccion de registro fotográfico-->
                <ScrollView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/scroll2">

                    <LinearLayout
                        android:id="@+id/Fotografias"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical">

                        <Button
                            android:text="Tomar Foto"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="27dp"
                            android:id="@+id/BtnTomarFoto"
                            style="@style/Widget.AppCompat.Button.Colored"
                            android:onClick="TomarFoto"/>

                    </LinearLayout>
                </ScrollView>
            </FrameLayout>
        </LinearLayout>
    </TabHost>

Java code for initialization of the OnCreate method control:

TbH = (TabHost) findViewById(R.id.TabHost); //llamamos al Tabhost
        TbH.setup();

        TabHost.TabSpec tab1 = TbH.newTabSpec("tab1");  //aspectos de cada Tab (pestaña)
        TabHost.TabSpec tab2 = TbH.newTabSpec("tab2");
        TabHost.TabSpec tab3 = TbH.newTabSpec("tab3");

        tab1.setIndicator("Datos Vehículo");
        tab1.setContent(R.id.DatosVehiculo);

        tab2.setIndicator("Cuadrilla");
        tab2.setContent(R.id.DatosOperarios);

        tab3.setIndicator("Fotografías");
        tab3.setContent(R.id.Fotografias);

        TbH.addTab(tab1); //añadimos los tabs ya programados
        TbH.addTab(tab2);
        TbH.addTab(tab3);
    
asked by Felipe Mendieta Perez 13.02.2017 в 15:50
source

1 answer

2

I understand the problem, some widgets can not take the focus, this I have seen as a "bug" the ScrollView when trying to configure a vertical movement within a TabHost , sometimes causes some elements in the tabs are blocked, I suggest you remove the ScrollView and a container of TabHost with this all the elements will get the focus:

Modified your layout, try this and you will not have problems:

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

    <TabHost
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/TabHost">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <LinearLayout
                    android:id="@+id/DatosVehiculo"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">

                    <TextView
                        android:text=""
                        android:layout_width="283dp"
                        android:layout_height="wrap_content"
                        android:textColor="#63183F"
                        android:id="@+id/lblRelleno" />

                    <TextView
                        android:text="Típo de Vehículo"
                        android:layout_width="283dp"
                        android:layout_height="wrap_content"
                        android:textColor="#63183F"
                        android:id="@+id/tipoVehiculo" />
                    <EditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:inputType="textPersonName"
                        android:ems="10"
                        android:id="@+id/editTipoVehiculo"
                        android:hint="Típo de Vehículo" />

                </LinearLayout>


                <!--Seccion de datos de los operarios-->

                    <LinearLayout
                        android:id="@+id/DatosOperarios"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">

                        <TextView
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:id="@+id/lblRelleno1" />

                        <TextView
                            android:text="Cédula:"
                            android:layout_width="match_parent"
                            android:textColor="#63183F"
                            android:layout_height="wrap_content"
                            android:id="@+id/cedulaOperario" />

                        <EditText
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:inputType="number"
                            android:ems="10"
                            android:id="@+id/txtCedulaOperario"
                            android:hint="Cédula del Operario" />



                        <!--Contenedor Horizontal de los botones-->
                        <LinearLayout
                            android:id="@+id/contenedorBotones"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:orientation="horizontal">

                            <Button
                                android:text="Añadir Operario"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/tabHost"
                                android:layout_alignParentLeft="true"
                                android:layout_alignParentStart="true"
                                android:layout_marginTop="27dp"
                                android:id="@+id/Anadir"
                                android:layout_alignParentRight="true"
                                android:layout_alignParentEnd="true"                                    style="@style/Widget.AppCompat.Button.Colored"                                    android:onClick="AgregarFilaTablaOperarios"/>

                            <Button
                                android:text="Limpiar Formulario"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_below="@+id/tabHost"
                                android:layout_alignParentLeft="true"
                                android:layout_alignParentStart="true"
                                android:layout_marginTop="27dp"
                                android:id="@+id/Limpiar"
                                android:layout_alignParentRight="true"
                                android:layout_alignParentEnd="true"                                    style="@style/Widget.AppCompat.Button.Colored"                                    android:onClick="LimpiarFormularioOperario"/>

                        </LinearLayout>

                        <!--Tabla donde se adicionan los operarios de la cuadrilla-->
                        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
                            android:id="@+id/tblOperarios"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:stretchColumns="1" >

                            <TableRow
                                android:id="@+id/Cabecera"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content" >

                                <TextView
                                    android:id="@+id/ColumnaCedula"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:padding="5px"
                                    android:text="CÉDULA"
                                    android:textColor="#63183F"
                                    android:textSize="18dp" />

                                <TextView
                                    android:id="@+id/ColumnaNombre"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_gravity="center_horizontal"
                                    android:padding="5px"
                                    android:text="NOMBRE OPERARIO"
                                    android:textColor="#63183F"
                                    android:textSize="18dp" />

                                <TextView
                                    android:id="@+id/ColumnaCargo"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:padding="5px"
                                    android:text="CARGO"
                                    android:textColor="#63183F"
                                    android:textSize="18dp" />
                            </TableRow>

                            <TableRow
                                android:id="@+id/SeparadorCabecera"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content" >
                                <FrameLayout
                                    android:id="@+id/LineaCabecera"
                                    android:layout_width="fill_parent"
                                    android:layout_height="2px"
                                    android:layout_span="6"
                                    android:background="@color/colorPrimaryDark" >
                                </FrameLayout>
                            </TableRow>
                        </TableLayout>

                    </LinearLayout>

                <!--Seccion de registro fotográfico-->

                    <LinearLayout
                        android:id="@+id/Fotografias"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical">

                        <Button
                            android:text="Tomar Foto"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="27dp"
                            android:id="@+id/BtnTomarFoto"
                            style="@style/Widget.AppCompat.Button.Colored"
                            android:onClick="TomarFoto"/>

                    </LinearLayout>

            </FrameLayout>
        </LinearLayout>
    </TabHost>
</LinearLayout>
    
answered by 13.02.2017 / 22:19
source