android動態tab
① 安卓中dialog布局中有動態的tab標簽怎麼寫
[java] view plain
public class PopUpDialog extends Dialog {
Context context;
private View customView;
public PopUpDialog(Context context) {
super(context);
this.context = context;
// TODO Auto-generated constructor stub
}
public PopUpDialog(Context context, int theme){
super(context, theme);
this.context = context;
LayoutInflater inflater= LayoutInflater.from(context);
customView = inflater.inflate(R.layout.mydialog, null);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(customView);
}
@Override
public View findViewById(int id) {
// TODO Auto-generated method stub
return super.findViewById(id);
}
public View getCustomView() {
return customView;
}
}
customView = inflater.inflate(R.layout.mydialog, null);通過此語句臘搭派獲取view「指針」(借用C的術語),在新的枝賣Activity中實現調用自定義對話框中的控制項。
[java] view plain
PopUpDialog newDialog = new PopUpDialog(MsgReView.this, R.style.MyDialog);
newDialog.setCanceledOnTouchOutside(true);
View view = newDialog.getCustomView();
TextView text1 = (TextView)view.findViewById(R.id.textViewTotal);
text1.setText("輪賀調查人數:5");
② android中tab選項卡怎麼做
第一步
res/values/strings.xml
[xhtml] view plain
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MyTabActivity!</string>
<string name="app_name">選項卡Demo</string>
<string name="andy">Andy Rubin--<a href="http://lib.csdn.net/base/15" class='replace_word' title="undefined" target='_blank' style='color:#df3434; font-weight:bold;'>Android</a>的創造者</string>
<string name="bill">Bill Joy--Java的創造者</string>
<string name="torvalds">Linus Torvalds --Linux之父</string>
</resources>
第二步
res/layout/tab_layout.xml
[xhtml] view plain
<?xml version="1.0" encoding="utf-8"?>
<!--
FrameLayout:一個FrameLayout對象好比一塊在屏幕上提前預定好的空白區域,
然後可以填充一些元素到里邊,比方說一張圖片等。
需要注意的是所有元素都被放置在FrameLayout區域的左上的區域,
而且無法為這些元素指定一個確切的位置。如果有多個元素,則後邊的會重疊在前一個元素上。
android:gravity用於設置View組件的對齊方式
(另外,android:layout_gravity用於設置Container組件的對齊方式)
center_horizontal 不改變控制項大小,對其到容器橫向中間位置(也就是在豎直方向的中間)
android:scaleType="fitXY" 把圖片不按比例來擴大或者縮小顯示
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:id="@+id/linearLayout1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
>
<ImageView
android:id="@+id/imageView01"
android:layout_gravity="center"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/andy"/>
<TextView
android:id="@+id/testView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dip"
android:text="@string/andy"
/>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout2"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
>
<ImageView
android:id="@+id/imageView02"
android:layout_gravity="center"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bill"/>
<TextView
android:id="@+id/testView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dip"
android:text="@string/bill"
/>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout3"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="vertical"
>
<ImageView
android:id="@+id/imageView03"
android:layout_gravity="center"
android:scaleType="fitXY"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/torvalds"/>
<TextView
android:id="@+id/testView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dip"
android:text="@string/torvalds"
/>
</LinearLayout>
</FrameLayout>
第三步
src/com/myandroid/tab/MyTabActivity.java
[java] view plain
package com.myandroid.tab;
import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;
public class MyTabActivity extends TabActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost tabHost = this.getTabHost();
/*
* LayoutInflater的作用類似於 findViewById(),
* 不同點是LayoutInflater是用來找layout文件夾下的xml布局文件,並且實例化
* 註:findViewById()只是找控制項之類(如Button和EditView)
*
* LayoutInflater.from(this)獲得context實例
* 也就是相當於this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
* LAYOUT_INFLATER_SERVICE 取得xml里定義的view
*-----------------------------------------------------------------------
* getSystemService:
* 根據傳入的NAME來取得對應的Object,然後轉換成相應的服務對象
* android的後台運行在很多service,
* 它們在系統啟動時被SystemServer開啟,支持系統的正常工作,
* 比如MountService監聽是否有SD卡安裝及移除,ClipboardService提供剪切板功能,
* 應用程序可以通過系統提供的Manager介面來訪問這些Service提供的數據
*-----------------------------------------------------------------------
*
* inflate是把xml表述的layout轉化為View
* tabHost.getTabContentView() 獲得Tab標簽頁的FrameLayout
* true表示將inflate綁定到根布局元素上
*/
LayoutInflater.from(this)
.inflate(R.layout.tab_layout,
tabHost.getTabContentView(), true);
/*
* tabHost.newTabSpec("Tab1") 創建TabHost.TabSpec,
* TabSpec即是選項卡的指示符,對於TabSpec可以設置一個標題或者設置一個標題和圖標
* setIndicator 是為選項卡指示符指定一個標簽和圖標
* setContent 為選項卡的內容指定視圖的ID
*/
tabHost.addTab(
tabHost.newTabSpec("Tab1")
.setIndicator("Tab1", getResources().getDrawable(R.drawable.png1)
).setContent(R.id.linearLayout1)
);
tabHost.addTab(
tabHost.newTabSpec("Tab2")
.setIndicator("Tab2", getResources().getDrawable(R.drawable.png2)
).setContent(R.id.linearLayout2)
);
tabHost.addTab(
tabHost.newTabSpec("Tab3")
.setIndicator("Tab3", getResources().getDrawable(R.drawable.png3)
).setContent(R.id.linearLayout3)
);
}
}
第四步
AndroidManifest.xml
[xhtml] view plain
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myandroid.tab"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyTabActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
</manifest>
附上出處鏈接:http://blog.csdn.net/jamesliulyc/article/details/6324432
③ android如何動態更新tabhost的tabSpec里的內容
如:
TabWidget tw = tabHost.getTabWidget();
LinearLayout ll = (LinearLayout) tw.getChildTabViewAt(1);//簡喊得到陵蔽第二個tab(是個線攔汪野性布局視圖)
ImageView img = (ImageView) ll.getChildAt(0);//得到線性布局內容
④ android怎麼實現底部tab
現在使用靜態的Fragment來實現底部Tab的功能:
[html] view plain
<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"
>
<fragment
android:id="@+id/fragment"
android:name="com.example.fragment.ContentFragment"
android:layout_width="fill_parent"
android:layout_height="300dp"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<Button
android:id="@+id/btn_news"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="新聞"
android:layout_weight="1"
/>
<Button
android:id="@+id/btn_entertainment"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="娛樂"
android:layout_weight="1"
/>
<Button
android:id="@+id/btn_political"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="政治"
android:layout_weight="1"
/>
<Button
android:id="@+id/btn_sports"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="體育"
android:layout_weight="1"
/>
</LinearLayout>
</LinearLayout>
要實現的功能就是點擊下面四個按鈕,內容進行切換:
ContentFragment.java
[java] view plain
public class ContentFragment extends Fragment {
private TextView tv_content;
private View rootView;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.activity_news, null);
tv_content = (TextView) rootView.findViewById(R.id.tv_content);
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void setContentMsg(String msg){
tv_content.setText(msg);
}
}
MainActivity.java
[java] view plain
public class MainActivity extends FragmentActivity implements OnClickListener {
private Button btn_news;
private Button btn_entertainment;
private Button btn_political;
private Button btn_sports;
private ContentFragment contentFragment;
FragmentTransaction transaction;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_news = (Button) findViewById(R.id.btn_news);
btn_entertainment = (Button) findViewById(R.id.btn_entertainment);
btn_political = (Button) findViewById(R.id.btn_political);
btn_sports = (Button) findViewById(R.id.btn_sports);
FragmentManager fragmentManager = getSupportFragmentManager();
contentFragment = (NewFragMent) fragmentManager.findFragmentById(R.id.fragment);
contentFragment.setContentMsg("新聞");
btn_news.setOnClickListener(this);
btn_entertainment.setOnClickListener(this);
btn_political.setOnClickListener(this);
btn_sports.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_news:
contentFragment.setContentMsg("新聞");
break;
case R.id.btn_entertainment:
contentFragment.setContentMsg("娛樂");
break;
case R.id.btn_political:
contentFragment.setContentMsg("政治");
break;
case R.id.btn_sports:
contentFragment.setContentMsg("體育");
break;
}
}
⑤ Android開發怎麼動態隱藏頂部的Tab,求大神,怎麼實現這種效果
android 阻尼效果,這個需要自己去寫控制項去實現
我這有個demo
跟你這個類似,下拉的時候,顯示出一堆的東西,上拉就隱藏
⑥ android上的qq打開後有會話,好友,群組,動態4個tab,然後左右滑動可以切換,這個是怎麼實現的。
你可以通過ACTIONBAR來實現衡彎州,這個是4.0以後的新特性。
如果需要demo可以去網上找找,或者追問留郵鬧喚箱發咐蔽給你
⑦ android中怎麼在代碼中動態添加的TabHost的選項卡在下面,效果圖如下圖
在TabWidget標仔游簽加拿戚激上
android:layout_alignParentBottom="true"
屬性消襪試試。