tabHost的滑动效果监听不到

我的tabHost有三栏,都是listView,想加一个滑动切换tab的效果,结果发现不行,于是
用了个简单的来测试,发现如下问题。

情况一

   android:id="@+id/tab2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

                <EditText
                    android:id="@+id/editText1"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"

                    android:ems="10" />
            </LinearLayout> 

情况二

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

                <EditText
                    android:id="@+id/editText1"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"

                    android:ems="10" />
            </LinearLayout>  

这个tab里面只有这个EditText,就android:layout_height不同

然后就发现滑动效果在fill_parent的时候不反应了!

这是什么问题???
下面是ACtivity的内容

 package com.mine.tabhostdemo2;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.GestureDetector;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class TabHostActivity extends FragmentActivity {
    private static TabHost tabHost;
    private  GestureDetector detector=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab_host);
        // tabHost = (TabHost) findViewById(R.id.tabhost);
        init();
        if (detector==null){

            detector= new GestureDetector(this,  
                    new MySimpleOnGestureListener());  
        }
    }

    private void init() {
        // TODO Auto-generated method stub
        tabHost = (TabHost) findViewById(R.id.tabhost);
        tabHost.setup();
        TabSpec spec1 = tabHost.newTabSpec("1");
        spec1.setIndicator("1",
                getResources().getDrawable(R.drawable.ic_launcher));
        spec1.setContent(R.id.tab1);
        TabSpec spec2 = tabHost.newTabSpec("2");
        spec2.setIndicator("2",
                getResources().getDrawable(R.drawable.ic_launcher));
        spec2.setContent(R.id.tab2);
        TabSpec spec3 = tabHost.newTabSpec("3");
        spec3.setIndicator("3",
                getResources().getDrawable(R.drawable.ic_launcher));
        spec3.setContent(R.id.tab3);
        tabHost.addTab(spec1);
        tabHost.addTab(spec2);
        tabHost.addTab(spec3);


//method one
     /*detector = new GestureDetector(this,
            new GestureDetector.SimpleOnGestureListener() {

                @Override
                public boolean onFling(MotionEvent e1, MotionEvent e2,
                        float velocityX, float velocityY) {
                    if ((e2.getRawX() - e1.getRawX()) > 80) {
                        showNext();
                        return true;
                    }

                    if ((e1.getRawX() - e2.getRawX()) > 80) {
                        showPre();
                        return true;
                    }
                    return super.onFling(e1, e2, velocityX, velocityY);
                }

            });*/

    }
    //method two
    private static class MySimpleOnGestureListener extends GestureDetector.SimpleOnGestureListener {  
        public MySimpleOnGestureListener() {  
            super();     
        }  
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {  
            if ((e2.getRawX() - e1.getRawX()) > 80) {
                showNext();
                return true;
            }

            if ((e1.getRawX() - e2.getRawX()) > 80) {
                showPre();
                return true;
            }
            //Log.e(TAG, "onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)");  
            return super.onFling(e1, e2, velocityX, velocityY);  
        }  
    }



    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if(detector!=null){
        detector.onTouchEvent(event);
        }else{
            Log.i("nimeide1", "no detector!!!!!!!!!!!!");
        }
        return super.onTouchEvent(event);
    }

    static int i = 0;

    protected static void showPre() {
        // TODO Auto-generated method stub
        tabHost.setCurrentTab(i = i == 2 ? i = 0 : ++i);
        Log.i("kennet", i + "");
    }

    protected static void showNext() {
        // TODO Auto-generated method stub
        tabHost.setCurrentTab(i = i == 0 ? i = 2 : --i);
        Log.i("kennet", i + "");
    }
}

2个回答

已经找到解决方法了
解决touch事件的冲突

求哪位大侠指点迷津啊!谢谢了啊!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
TabHost滑动效果怎么实现?

我需要弄几个分页,就是TabHost的形式的。但是在切换选项页面的时候TabHost标签栏中的标签与标签的切换带有滑动的动画效果,最好是页面也有滑动效果。我想知道这样的效果是怎么做的?用Tabhost?ActivityGround?还是其他什么方法?要怎么实现?最好有demo可以看一下,谢谢

tabhost中按钮onclick

在MainActivity中用addTab加载了tab.xml布局,但是tab.xml里的button的onclick应该写在哪里?我写在MainActivity中依然报错 Could not find method ok()(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button' 不写在MainActivity中应该写在哪里?

[Android]关于TabHost+ListView的问题.

在TabHost中添加一个ListView.这个ListView的作用类似文件管理器,并添加了OnItemChickListener. 点击ListView中所显示的目录(isDirectory),如果有下级目录就会在当前ListView显示下级目录,一直到没有目录或者到文件(File)为止. 问题:如何在TabHost中刷新ListView,而不是刷新整个Activity? 因为TabHost的默认标签为0角标,ListView是在1角标.当我第一次进入该Activity时,需要显示的是0角标的view. 注:这里的Activity继承的是Actviity,监听是构建了一个监听类,统一监听所有触发事件,ListView的Adapter的自定义的Adapter. 请各位高手不惜吝教...小弟(菜鸟)感激...

android tab 变换监听器

我创建了三个Tab. Language (包括language 布局的language 类) Activation (包括Activation 布局的Activation类) Settings (包括Settings 布局的Settings 类) 在 settings 列表里改变 settings 可以隐藏language布局中的文字定义,然后再次点击language Tab的时候,文字翻译仍然还在。 我认为应该设置一个tab 变换监听器。 但是怎么实现tab变换监听器呢? TabActivity: package com.languagetranslate; import com.languagetranslate.Constants.Constants; import com.languagetranslate.dao.UserData; import android.app.Activity; import android.app.TabActivity; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TabHost; import android.widget.TextView; import android.widget.TabHost.OnTabChangeListener; public class Screen1 extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.screen1); initializeTabs(); } private void initializeTabs() { TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, WordsClass.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("Words").setIndicator("Words") .setContent(intent); tabHost.addTab(spec); // Do the same for the other tabs intent = new Intent().setClass(this, ActivateClass.class); spec = tabHost.newTabSpec("Activitation").setIndicator("Activitation") .setContent(intent); tabHost.addTab(spec); // Do the same for the other tabs intent = new Intent().setClass(this, Settings.class); spec = tabHost.newTabSpec("Settings").setIndicator(".\n.\n.") .setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(2); tabHost.setOnTabChangedListener(new OnTabChangeListener() { public void onTabChanged(String tabId) { if ( tabId == "Language" ){ Constants.TAGS_ENABLE = UserData.getTagSettings(getApplicationContext(), Constants.SETTINGS_FILE); if (Constants.TAGS_ENABLE == true) { LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); FrameLayout item = (FrameLayout)findViewById(android.R.id.tabcontent); View child = inflate.inflate(R.layout.wordlayout, null); child.findViewById(R.id.availabletags).setVisibility(View.VISIBLE); child.findViewById(R.id.tags).setVisibility(View.VISIBLE); item.addView(child); // // ((TextView) findViewById(R.id.availabletags)) // .setVisibility(View.VISIBLE); // ((ListView) findViewById(R.id.tags)) // .setVisibility(View.VISIBLE); } } } }); } }

请问Tabhost建立切换卡,在点击某一个Tab时不让它切换出现问题?

我做了一个Tab切换卡的应用,Tab卡包括A,B,C,more,我想点击A,B,C时都切换到各自的Activity,但唯独more选项卡点击时不会切换任何Tab,只是弹出一个菜单用来选择。 我试过用OnTabChangeListener监听Tab的切换,但发现都是切换完毕后程序才走到这里,所以请教一下如何在切换前捕获到事件? 还有我如何在具有TabHost的Activity中去改变和操作子Tab的Activity中的控件状态及其变量? 希望了解的人,能帮忙解答下。谢谢!

android 监听返回键怎么从activity 跳转到tabhost主页且选项卡不消失?

我用activity 和tabhost配套使用,当监听返回键时跳转到tabhost主页,发现选项卡消失,不只是为什么?求各位大神解答?谢谢!

如何判断用户点击了 TabHos t中的 tab?

程序中的 TabHost 中有两个 tabs。我想知道用户什么时候点击另一个 tab。如何判断呢? Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity TabHost TabHost.TabSpec spec; // Resusable TabSpec for each tab Intent intent; // Reusable Intent for each tab // Create an Intent to launch an Activity for the tab (to be reused) intent = new Intent().setClass(this, Main.class); // Initialize a TabSpec for each tab and add it to the TabHost spec = tabHost.newTabSpec("watchlist").setIndicator("Watchlist",res.getDrawable(R.drawable.icon)).setContent(intent); tabHost.addTab(spec); // Do the same for the other tabs intent = new Intent().setClass(this, ARActivity.class); spec = tabHost.newTabSpec("trending").setIndicator("Trending",res.getDrawable(R.drawable.icon)).setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(0);

android TabHost(标题不知道怎么写。。。。。。)

package com.lyf.ai.myapplication; import android.app.TabActivity; import android.content.Intent; import android.os.Bundle; import android.view.Window; import android.widget.CompoundButton; import android.widget.RadioButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.TabHost; public class MainActivity extends TabActivity implements OnCheckedChangeListener{ /* 声明全局变量 */ private TabHost mTabHost; private Intent mAIntent; private Intent mBIntent; private Intent mCIntent; private Intent mDIntent; private Intent mEIntent; /* 在第一次创建活动时调用。 */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //标记为“无标题”功能,在屏幕顶部关闭标题。 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.maintabs); //初始化各个tab标签对应的intent this.mAIntent = new Intent(this,BiddingInformationActivity.class); this.mBIntent = new Intent(this,BActivity.class); this.mCIntent = new Intent(this,CActivity.class); this.mDIntent = new Intent(this,DActivity.class); this.mEIntent = new Intent(this,MoreActivity.class); //为RadioGroup设置监听 ((RadioButton) findViewById(R.id.radio_button0)).setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button1)).setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button2)).setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button3)).setOnCheckedChangeListener(this); ((RadioButton) findViewById(R.id.radio_button4)).setOnCheckedChangeListener(this); setupIntent(); } /* 点击触发事件, */ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ switch (buttonView.getId()) { case R.id.radio_button0: this.mTabHost.setCurrentTabByTag("A_TAB"); break; case R.id.radio_button1: this.mTabHost.setCurrentTabByTag("B_TAB"); break; case R.id.radio_button2: this.mTabHost.setCurrentTabByTag("C_TAB"); break; case R.id.radio_button3: this.mTabHost.setCurrentTabByTag("D_TAB"); break; case R.id.radio_button4: this.mTabHost.setCurrentTabByTag("MORE_TAB"); break; } } } /* 为tabHost添加各个标签项 */ private void setupIntent() { this.mTabHost = getTabHost(); TabHost localTabHost = this.mTabHost; localTabHost.addTab(buildTabSpec("A_TAB", R.string.main_home, R.mipmap.icon_1_n, this.mAIntent)); localTabHost.addTab(buildTabSpec("B_TAB", R.string.main_news, R.mipmap.icon_2_n, this.mBIntent)); localTabHost.addTab(buildTabSpec("C_TAB", R.string.main_manage_date, R.mipmap.icon_3_n, this.mCIntent)); localTabHost.addTab(buildTabSpec("D_TAB", R.string.main_friends, R.mipmap.icon_4_n, this.mDIntent)); localTabHost.addTab(buildTabSpec("MORE_TAB", R.string.more, R.mipmap.icon_5_n, this.mEIntent)); } /* 自定义创建标签项的方法 @param tag 标签标识 @param resLabel 标签文字 @param resIcon 标签图片 */ private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon, final Intent content) { return this.mTabHost.newTabSpec(tag).setIndicator(getString(resLabel), getResources().getDrawable(resIcon)).setContent(content); } } 效果图如下: ![图片说明](https://img-ask.csdn.net/upload/201709/30/1506773253_526938.png) 本人新手一 枚,代码看不懂,请求大神解释,或者给参考资料,谢谢大家的帮助! 主要问题有 (1)它是怎么默认开始页面的 (2)如果要跳转一个页面,我又应该怎么学 ,跳转页面后下面的导航栏还要存在

如何隐藏tabhost中的TabWidget

我在程序中使用tabhost 。我使用下面的代码来添加 intent: TabHost tabHost = getTabHost(); TabHost.TabSpec spec; Intent intent; Resources res = getResources(); intent = new Intent().setClass(this, AActivity.class); spec = tabHost.newTabSpec("Files").setIndicator("NAS Files", res.getDrawable(R.drawable.ic)).setContent(intent); tabHost.addTab(spec); 在 AActivity中,当点击按钮时,我想隐藏 tabs(TabWidget),然后点击两次显示tabs。如何实现?

跳转到新的ACTIVITY,tabhost当前选项卡显示为空

跳转到新的ACTIVITY,新的Activity采用的是FRAGMENT+TABHOST,跳转后当前的tabcontent内容为空,但是在新的Activity选项卡切换下,tabcontent的内容就又能显示了!! 问题就是跳转后,首次的tabcontent不显示!大家有谁遇到过这样的问题吗? 补充下code: **前一个Activity, R.id.fragment_tab1 是用的Listfragment** tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup(); tabHost.addTab( tabHost.newTabSpec(main_home) .setIndicator(main_home) .setContent(R.id.fragment_tab1) ); tabHost.setCurrentTab(0); ------------------------------------------------------------------------ R.id.fragment_tab1 里的setOnItemClickListener()方法,是将当前list的item项放在通过intent传递到 ,需要启动的新的Activity中/ ------------------------------------------------------------------------ protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.showcontain); ProgressRefresh(); } private void ProgressRefresh(){ contextTask = new ContextTask(0); TaskHost taskHost = new TaskHost(){ @Override public void onPreExecute(int requestCode) { // TODO Auto-generated method stub super.onPreExecute(requestCode); } }; contextTask.setTaskHost(taskHost); contextTask.setProgress(new SimpleDialogProgress(this, "加载LIST", "正在加载中...")); InitUI(); contextTask.execute(); } private void InitUI(){ getIntentExtra(); TextView txt = (TextView)findViewById(R.id.text_cjq); txt.setText(texts); InitTabHost(); InitClickListener(); } private void InitTabHost(){ TabHost.TabSpec spec; //tabHost = getTabHost(); tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup(); // ............. spec=tabHost.newTabSpec("Refresh").setIndicator("Refresh").setContent(R.id.tab0); tabHost.addTab(spec); spec=tabHost.newTabSpec("Love").setIndicator("Love").setContent(R.id.tab1); tabHost.addTab(spec); spec=tabHost.newTabSpec("Comment").setIndicator("Comment").setContent(R.id.tab2); tabHost.addTab(spec); spec=tabHost.newTabSpec("Onward").setIndicator("Onward").setContent(R.id.tab2); tabHost.addTab(spec); spec=tabHost.newTabSpec("Goback").setIndicator("Goback").setContent(R.id.tab1); tabHost.addTab(spec); tabHost.setCurrentTab(0); } private void InitClickListener(){ RadioGroup radioGroup=(RadioGroup) this.findViewById(R.id.main_tab); radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub switch (checkedId) { case R.id.main_tab_addHome: tabHost.setCurrentTabByTag("Refresh"); break; case R.id.main_tab_addExam: tabHost.setCurrentTabByTag("Love"); break; case R.id.main_tab_myExam: tabHost.setCurrentTabByTag("Comment"); break; case R.id.main_tab_message: tabHost.setCurrentTabByTag("Onward"); break; case R.id.main_tab_settings: tabHost.setCurrentTabByTag("Goback"); break; default: tabHost.setCurrentTabByTag("Refresh"); break; } } }); } private void getIntentExtra(){ Intent intent = getIntent(); title = intent.getExtras().getString("title"); texts = intent.getExtras().getString("texts"); resID = intent.getExtras().getInt("resIds"); }

viewpager中两个tabhost互相冲突

viewpager页面里,2个靠近的页面都使用了tabhost,可以正常运行,但是后初始化的那个界面的tabhost会部署到 先初始化完成的那个页面里。 我是这么完成tabhost的 ``` @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment view = inflater.inflate(R.layout.fragment_frg5, container, false); tabHost5 = (TabHost) view.findViewById(R.id.tabHost1); tabHost5.setup(); tabHost5.setOnTabChangedListener(new TabHost.OnTabChangeListener() { @Override public void onTabChanged(String tab) { System.out.println("current tabid=" + tab); FragmentTransaction ft = getFragmentManager().beginTransaction(); if (TextUtils.equals("3", tab)) { //add/replace fragment first frag5 = new frg5_frg1(); System.out.println("load f3"); } else if (TextUtils.equals("4", tab)) { //add/replace fragment second frag5 = new frg5_frg2(); System.out.println("load f4"); } else if (TextUtils.equals("5", tab)) { //add/replace fragment second frag5 = new frg5_frg3(); System.out.println("load f5"); } ft.replace(android.R.id.tabcontent, frag5, "frag5"); ft.commit(); } }); tabHost5.addTab(tabHost5.newTabSpec("3").setIndicator("环境设置") .setContent(new DummyTabFactory(getActivity()))); tabHost5.addTab(tabHost5.newTabSpec("4").setIndicator("安全设置")//setIndicator 设置标签样式 .setContent(new DummyTabFactory(getActivity())));//setContent 点击标签后触发 tabHost5.addTab(tabHost5.newTabSpec("5").setIndicator("密码设置")//setIndicator 设置标签样式 .setContent(new DummyTabFactory(getActivity()))); //setContent 点击标签后触发 return view; } private static class DummyTabFactory implements TabHost.TabContentFactory { private Context context; private DummyTabFactory(Context ctx) { this.context = ctx; } @Override public View createTabContent(String tag1) {//创建宽高均为0的view View v = new ImageView(context); v.setMinimumWidth(0); v.setMinimumHeight(0); return v; } } } ``` 布局页面 ``` <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/tabHost1"> <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"> </TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> </FrameLayout> </LinearLayout> </TabHost> ``` 2个tabhost都是这么完成的,但是因为必须用@android:id/tabcontent。所以2个界面的布局就变得重复了, 后加载的那个tabhost会把前面的盖掉。我想过把viewpager的预加载关掉,那样就不会提前初始化下一个tabhost,但学的太少,去掉预加载老是出问题。 现在为了实现功能,把一个tabhost改成了取消滑动的viewpager,虽然看着像,但终究不是tabhost。 tabhost的实现方法问题吗?

TabHost中Activity的问题

在程序中使用一个TabHost。以下代码调用一个 A activity。 intent = new Intent().setClass(this, AActivity.class); spec = tabHost.newTabSpec("A").setIndicator("A", res.getDrawable(R.drawable.icon)).setContent(intent); tabHost.addTab(spec); 这是在tab里面的。在A activity调用了B activity。 B activity会在一个新标签中打开,不是在tab中。 如何把B activity放在tab框架中呢? A activity使用以下代码调用B activity。 it = new Intent(this, BActivity.class); startActivity(it);

tabhost 中的横向 scrollview 不能运行或者内容消失

main.xml 包含 tabhost。 现在的问题是横向的 scrollview 不能运行,如果我改变 relative layout 到 linearlayout 标签是可以滚动的,但是却不能在 activity 上看见主要内容,只能看见 tabs。 我也想完全删除 linear layout,包含 tabwidget,但是什么也没有改变。 代码如下: <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:paddingTop="@dimen/tab_space_top" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:id="@+id/tab_relative_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" > <HorizontalScrollView android:layout_width="fill_parent" android:layout_height="wrap_content" android:fillViewport="true" android:scrollbars="none"> <LinearLayout android:id="@+id/tab_linear_layout" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content"> </TabWidget> </LinearLayout> </HorizontalScrollView> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@android:id/tabs"> </FrameLayout> </RelativeLayout> </TabHost> 请问如何修改呢?

TabHost显示在底部和顶部问题

xml里面代码一样 TabHost继承activity会显示在顶部 但是继承AppCompatActivity却显示在底部 <!-- <TabHost --> <android.support.v4.app.FragmentTabHost android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom="true" android:background="#fff7f7f7" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0" /> <FrameLayout android:id="@+id/realtabcontent" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:divider="#00000000" android:orientation="horizontal" /> </LinearLayout> </android.support.v4.app.FragmentTabHost> <!-- </TabHost> -->

Activity 跳转到 TabHost后 Tab标签页为空

// 情况描述 :  跳转后默认tab页面为空,切换下tab后,显示正常!! public class ListContainActivity extends BaseActivity{ public static final String tag = "COOLSMILE_DEBUG"; private TabHost tabHost ; ContextTask contextTask ; String mString=""; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.showcontain); ProgressRefresh(); } private void InitUI(){ getIntentExtra(); // 得到Activity传递的信息 Log.v(tag, "----------- InitUI start -----------"); InitTabHost(); } private void InitTabHost(){ Log.v(tag, "----------- InitTabHost start -----------"); TabHost.TabSpec spec; tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup(); spec=tabHost.newTabSpec("Refresh").setIndicator("Refresh").setContent(R.id.contain_tab0); tabHost.addTab(spec); spec=tabHost.newTabSpec("Love").setIndicator("Love").setContent(R.id.contain_tab1); tabHost.addTab(spec); spec=tabHost.newTabSpec("Comment").setIndicator("Comment").setContent(R.id.contain_tab2); tabHost.addTab(spec); spec=tabHost.newTabSpec("Onward").setIndicator("Onward").setContent(R.id.contain_tab0); tabHost.addTab(spec); spec=tabHost.newTabSpec("Goback").setIndicator("Goback").setContent(R.id.contain_tab1); tabHost.addTab(spec); InitClickListener(); } private void ProgressRefresh(){ Log.v(tag, "----------- progress_refresh start -----------"); contextTask = new ContextTask(0); TaskHost taskHost = new TaskHost(){ @Override public void onPreExecute(int requestCode) { // TODO Auto-generated method stub super.onPreExecute(requestCode); Log.v(tag, "----------- progress_refresh.onPreExecute() start -----------"); InitUI(); } @Override public void onPostExecute(int requestCode, String result) { // TODO Auto-generated method stub super.onPostExecute(requestCode, result); Log.v(tag, "----------- progress_refresh.onPostExecute() start -----------"+result); TextView txt = (TextView)findViewById(R.id.text_Result); txt.setText("DoInBackground Result :"+result); TextView txt1 = (TextView)findViewById(R.id.text_Refresh); txt1.setText("Hello my name is "+mString); } }; contextTask.setTaskHost(taskHost); contextTask.setProgress(new SimpleDialogProgress(this,"正在获取数据...")); contextTask.execute(); } private void InitClickListener(){ Log.v(tag, "----------- InitClickListener start -----------"); RadioGroup radioGroup=(RadioGroup) this.findViewById(R.id.main_tab); radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub switch (checkedId) { case R.id.main_tab_addHome: tabHost.setCurrentTabByTag("Refresh"); break; case R.id.main_tab_addExam: tabHost.setCurrentTabByTag("Love"); break; case R.id.main_tab_myExam: tabHost.setCurrentTabByTag("Comment"); break; case R.id.main_tab_message: tabHost.setCurrentTabByTag("Onward"); break; case R.id.main_tab_settings: tabHost.setCurrentTabByTag("Goback"); break; default: tabHost.setCurrentTabByTag("Refresh"); break; } } }); } private void getIntentExtra(){ Intent intent = getIntent(); mString = intent.getExtras().getString("PRESIDENTS_CONTENT"); } }

为什么我TabHost不能设置当前页面

是这样的,我从3个tab里的第2个tab点击跳到一个activity,当这个activity点back的时候,然后就把之前的tab页面刷新下(就是把第2个tab切换到第3个tab)。但是 mTabHost.setCurrentTab(event.getTabPage());设置不了 这事TabHost界面的点击时间 ``` case R.id.to_personal: Intent intent = new Intent(this, PersonalActivity.class); startActivity(intent); break; ``` ``` package com.zftpay.paybox.view; import com.niufu.paybox.R; import com.zftpay.paybox.activity.BaseFragmentActivity; import com.zftpay.paybox.activity.FragmentHome.CurrentTabState; import com.zftpay.paybox.model.Events.CurrentTabStatePage; import android.os.Bundle; import android.view.KeyEvent; import de.greenrobot.event.EventBus; public class PersonalActivity extends BaseFragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_personal); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK) { finish(); EventBus.getDefault().post(new CurrentTabStatePage(CurrentTabState.FRAGMENTACQUIRER.tabPage)); return true; } return super.onKeyDown(keyCode, event); } } ``` 这事activity点back后返回到之前界面的EventBus响应代码 ``` public void onEventMainThread(CurrentTabStatePage event) { mTabHost.setCurrentTab(event.getTabPage()); } ```

TabHost中添加选项卡问题

Caused by: java.lang.IllegalArgumentException: you must specify a way to create the tab content是什么原因呢??? <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="338dp" android:scrollbars="vertical" android:allowUndo="true" /> <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" android:layout_weight="1" > <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_gravity="center_horizontal|top" android:orientation="horizontal" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="match_parent"> </FrameLayout> </LinearLayout> </TabHost> </LinearLayout> protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTabHost = (TabHost)findViewById(android.R.id.tabhost); mTabHost.setup(); mTabSpec_1 = mTabHost.newTabSpec("tab1").setIndicator(TAB1, getResources().getDrawable(R.mipmap.ic_launcher)); mTabHost.addTab(mTabSpec_1); } }

如何从TabHost中引用一个子activity来调用一个公共函数?

在TabHost中有两个子activity,这两个子activity在两个tab中。在其中的一个activity实现了一个公共函数,我想从父类TabHost中调用这个函数,来触发tab中的一些action。 能否从TabHost中引用activity本身来调用一个公共函数? tabhost设置: res = getResources(); tabHost = getTabHost(); TabHost.TabSpec spec; Intent intent; intent = new Intent().setClass(this, home.class); spec = tabHost.newTabSpec("home").setIndicator("Groups", res.getDrawable(R.drawable.groups)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, messages.class); spec = tabHost.newTabSpec("messages").setIndicator("Messages", res.getDrawable(R.drawable.messages)).setContent(intent); tabHost.addTab(spec);

tabhost与标题文件布局问题

package com.example.trainticket; import android.app.TabActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Window; import android.widget.TabHost; public class OrderDemandActivity extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.orderdemand); // TabHost tabhost=(TabHost)findViewById(R.id.ordertabhost); // tabhost.setup(this.getLocalActivityManager()); TabHost tabhost=getTabHost(); LayoutInflater.from(OrderDemandActivity.this).inflate(R.layout.orderdemand,tabhost.getTabContentView(),true); tabhost.addTab(tabhost.newTabSpec("yiwanchengorder"). setIndicator(LayoutInflater.from(OrderDemandActivity.this). inflate(R.layout.ordercompleted,null)).setContent(R.id.yiwancheng)); tabhost.addTab(tabhost.newTabSpec("noorder"). setIndicator(LayoutInflater.from(OrderDemandActivity.this). inflate(R.layout.orderhanginthe,null)).setContent(R.id.weiwancheng)); } } ``` <?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="#ECECFF" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#0066CC" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="10dp" android:text="@string/ordertitle" android:textColor="@android:color/white" android:textSize="20sp" /> </LinearLayout> <com.example.trainticket.MyScrollView android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TabHost android:id="@+id/ordertabhost" android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TabWidget android:id="@+id/ordertabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#C7C7E2" > </TabWidget> <FrameLayout android:id="@+id/ordertabcontent" android:layout_width="match_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/yiwancheng" 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:layout_marginBottom="5dp" android:layout_marginLeft="5dp" android:layout_marginTop="5dp" android:text="@string/ordertime" android:textSize="12sp" /> <TextView android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#E0E0E0" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/white" android:orientation="vertical" > <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="2dp" android:paddingLeft="15dp" android:paddingRight="10dp" android:paddingTop="2dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center|left" android:text="@string/ordertoday" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center|right" android:background="@drawable/jshop_arrow_right" /> </FrameLayout> <TextView android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_marginLeft="7dp" android:layout_marginRight="7dp" android:background="#E0E0E0" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="2dp" android:paddingLeft="15dp" android:paddingRight="10dp" android:paddingTop="2dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center|left" android:text="@string/nogoorder" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center|right" android:background="@drawable/jshop_arrow_right" /> </FrameLayout> <TextView android:layout_width="match_parent" android:layout_height="0.5dp" android:layout_marginLeft="7dp" android:layout_marginRight="7dp" android:background="#E0E0E0" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="2dp" android:paddingLeft="15dp" android:paddingRight="10dp" android:paddingTop="2dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center|left" android:text="@string/oldorder" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center|right" android:background="@drawable/jshop_arrow_right" /> </FrameLayout> <TextView android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#E0E0E0" /> <TextView android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#E0E0E0" /> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/weiwancheng" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="未完成订单(0)" /> </LinearLayout> </FrameLayout> </LinearLayout> </TabHost> </LinearLayout> </com.example.trainticket.MyScrollView> </LinearLayout> ``` ![图片说明](https://img-ask.csdn.net/upload/201509/24/1443067710_838100.png) 我把标题布局放在tabhost上面,结果放到模拟器上,却加载到tabhost里面去了,是不是因为,添加tabhost页面的时候我把整个布局文件,放进去的原因呢?我是想要标题在tabhost上面,该怎么解决,求大神指导!

程序员的兼职技能课

程序员的兼职技能课

为linux系统设计一个简单的二级文件系统

实验目的: 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 实验要求: 为linux系统设计一个简单的二级文件系统。要求做到以下几点: (1)可以实现下列几条命令(至少4条)

CCNA+HCNA+wireshark抓包综合网工技能提升套餐

本套餐包含思科路由交换CCNA,部分CCNP核心,华为HCNA以及wireshark抓包等类容,旨在培养具有综合能力的网络工程师。

董付国老师Python全栈学习优惠套餐

购买套餐的朋友可以关注微信公众号“Python小屋”,上传付款截图,然后领取董老师任意图书1本。

成年人用得到的6款资源网站!各个都是宝藏,绝对让你大饱眼福!

不管是学习还是工作,我们都需要一些资源帮助我们有效地解决实际问题。 很多人找资源只知道上百度,但是你们知道吗,有的资源是百度也搜索不出来的,那么今天小编就给大家介绍几款好用的资源网站,大家赶紧收入囊中吧! 1.网盘007 https://wangpan007.com/ 一款全能的资源搜索网站!只需要输入关键字,就能获得你想要的视频、音乐、压缩包等各种资源,网上...

矿车轴载荷计算方法的比较及选用

针对矿车轴的弯曲损坏,分析了固定式矿车车轴的受力,并对力叠加法以及当量负荷法2种计算方法进行了分析和比较,认为应采用当量负荷法进行车轴的设计计算。

Python数据清洗实战入门

Python数据清洗实战入门

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

Polar编码matlab程序

matlab实现的Polar codes源程序

2019全国大学生数学建模竞赛C题原版优秀论文

2019全国大学生数学建模竞赛C题原版优秀论文,PDF原版论文,不是图片合成的,是可编辑的文字版。共三篇。 C044.pdf C137.pdf C308.pdf

Linux常用命令大全(非常全!!!)

Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构 uname -m 显示机器的处理器架构 uname -r 显示正在使用的内核版本 d...

Linux下聊天室实现(基于C)

在linux下的基于TCP/IP,采用socket通信的聊天室,实现进入聊天室,进行多人群聊,指定人进行私聊,群主管理员功能,颗进行禁言,提出群聊等操作。个人账号可修改昵称或者修改密码,还可进行找回密

一个较完整的Qt用户登录界面设计

一个较完整的Qt用户登录界面,稍微移植可用,用sqlite数据库存储用户名和密码,具有增加和删除用户的功能,开发环境为ubuntu16.04+Qt5.6.1,win7下程序也编译可用。贡献出来,共同学

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

【C语言】贪吃蛇游戏代码(Visual C++6.0实现)

本游戏代码参考《C语言项目开发全程实录(第二版)》第六章。代码已在Visual C++6.0环境下编译测试通过,可在VC++6.0编译器中导入工程编译运行查看效果,或者也可以直接运行Release或D

Android小项目——新闻APP(源码)

Android小项目——新闻APP(源码),一个很简单的可以练手的Android Demo Ps:下载之前可以先看一下这篇文章——https://blog.csdn.net/qq_34149526/a

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

网络工程师小白入门--【思科CCNA、华为HCNA等网络工程师认证】

Android音视频开发全套

Android平台音视频开发全套,涉及:FFmpeg软解码解码、Mediacodec硬解码编码、Openssl音频播放、OpenGL ES视频渲染、RTMP推流等核心重要知识点。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

2019 Python开发者日-培训

2019 Python开发者日-培训

2019 AI开发者大会

2019 AI开发者大会

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

因为看了这些书,我大二就拿了华为Offer

四年了,四年,你知道大学这四年我怎么过的么?

Python可以这样学(第四季:数据分析与科学计算可视化)

Python可以这样学(第四季:数据分析与科学计算可视化)

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

C++语言基础视频教程

C++语言基础视频教程

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问