質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Wear

Android Wearとは、Googleが発表した腕時計型ウェアラブルデバイス(スマートウォッチ)向けのプラットフォームです。GoogleのAndroid OSをベースにしており、情報の入手・管理などを行うことができます。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Widget

ホームスクリーンウィジェット、またはAndroidアプリケーションのスクリーン上で使用される一般的なユーザインタフェース要素に関連することを指します。

Q&A

0回答

1611閲覧

Android Tabについて

TakamasaAwai

総合スコア73

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Wear

Android Wearとは、Googleが発表した腕時計型ウェアラブルデバイス(スマートウォッチ)向けのプラットフォームです。GoogleのAndroid OSをベースにしており、情報の入手・管理などを行うことができます。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Android Widget

ホームスクリーンウィジェット、またはAndroidアプリケーションのスクリーン上で使用される一般的なユーザインタフェース要素に関連することを指します。

0グッド

0クリップ

投稿2015/07/11 11:56

下のコードで、上の写真のようなタブを作りたいのですが、下のようになってしまいます。どうしてでしょうか?

lang

1public class MainActivity extends FragmentActivity { 2 ViewPager viewPager; 3 TabHost tabHost; 4 View indicator; 5 TabWidget tabWidget; 6 7 @Override 8 protected void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.activity_main); 11 //マテリアルデザインの作業 12 tabWidget = (TabWidget) findViewById(android.R.id.tabs); 13 tabWidget.setStripEnabled(false); 14 tabWidget.setShowDividers(LinearLayout.SHOW_DIVIDER_NONE); 15 indicator = findViewById(R.id.indicator); 16 17 tabHost = (TabHost) findViewById(android.R.id.tabhost); 18 tabHost.setup(); 19 20 getActionBar().setElevation(0); //TabとActionBarとの間の影を消す 21 22 float elevation = 4 * getResources().getDisplayMetrics().density; 23 tabHost.setElevation(elevation); 24 25 //PagerとTabの設定 26 ViewPagerAdapter vpa = new ViewPagerAdapter(getSupportFragmentManager()); 27 viewPager = (ViewPager) findViewById(R.id.pager); 28 viewPager.setAdapter(vpa); 29 viewPager.setOnPageChangeListener(new PageChangeListener()); 30 31 for (int i = 0; i < vpa.getCount(); i++) { 32 tabHost.addTab(tabHost 33 .newTabSpec(String.valueOf(i)) 34 .setIndicator(vpa.getPageTitle(i)) 35 .setContent(android.R.id.tabcontent)); 36 } 37 38 LayoutInflater inflater = LayoutInflater.from(this); 39 for (int i = 0; i < vpa.getCount(); i++) { 40 TextView tv = (TextView) inflater.inflate(R.layout.tab_widget, tabWidget, false); 41 tv.setText(vpa.getPageTitle(i)); 42 43 tabHost.addTab(tabHost 44 .newTabSpec(String.valueOf(i)) 45 .setIndicator(tv) 46 .setContent(android.R.id.tabcontent)); 47 } 48 49 50 tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() { 51 @Override 52 public void onTabChanged(String tabId) { 53 viewPager.setCurrentItem(Integer.valueOf(tabId)); 54 } 55 }); 56 57 viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 58 @Override 59 public void onPageSelected(int position) { 60 super.onPageSelected(position); 61 tabHost.setCurrentTab(position); 62 } 63 }); 64 } 65 66 private class PageChangeListener implements ViewPager.OnPageChangeListener { 67 private int scrollingState = ViewPager.SCROLL_STATE_IDLE; 68 69 @Override 70 public void onPageSelected(int position) { 71 // スクロール中はonPageScrolled()で描画するのでここではしない![![イメージ説明][WIDTH:320](bb72e84ff96ba1d282308e803ab20cc8.png)][WIDTH:600](5bf7aa5c2d60c121053a96d843759aad.png) 72 if (scrollingState == ViewPager.SCROLL_STATE_IDLE) { 73 updateIndicatorPosition(position, 0); 74 } 75 tabWidget.setCurrentTab(position); 76 } 77 78 @Override 79 public void onPageScrollStateChanged(int state) { 80 scrollingState = state; 81 } 82 83 @Override 84 public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 85 updateIndicatorPosition(position, positionOffset); 86 } 87 88 private void updateIndicatorPosition(int position, float positionOffset) { 89 View tabView = tabWidget.getChildTabViewAt(position); 90 int indicatorWidth = tabView.getWidth(); 91 int indicatorLeft = (int) ((position + positionOffset) * indicatorWidth); 92 93 final FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) indicator.getLayoutParams(); 94 layoutParams.width = indicatorWidth; 95 layoutParams.setMargins(indicatorLeft, 0, 0, 0); 96 indicator.setLayoutParams(layoutParams); 97 } 98 } 99} 100```![イメージ説明][WIDTH:600](2f8b168226b4dc3969bcb3e4894a4a4a.png)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RitsukiGoto

2015/07/11 12:20

Github等にソースコードを転送していただけると助かるのですが。。。 難しいですかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問