我正在构建选项卡的应用程序.
@android:style/Theme.Dialog 一切正常,直到我不应用主题@android:style/Theme.Dialog
后应用主题我得到例外:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ebuilder/com.ebuilder.views.MyTabActivity}: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)
在以下行:
actionBar.addTab(actionBar.newTab().setCustomView(R.layout.tab_home).
setTabListener(homeListener), 0);
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
1.如果我应用主题对话框会出现什么问题?
我的做法是对的吗?
如果有人知道另一种方法,请告诉我.
Edit1: *清单文件*
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vivek"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:targetSdkVersion="14"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".FragmentInsideFragmentTestActivity"
android:label="@string/app_name"
android:theme="@style/Theme.CustomDialog" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
RES /值/ style.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.CustomDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">false</item>
<item name="android:windowActionBar">true</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
EDIT2
05-03 …Run Code Online (Sandbox Code Playgroud) Android操作栏标签上是否可以显示图标?
如果是这样,有人能指出一个完成它的人的例子吗?
经过几个小时的尝试,我终于找到了一种方法,可以将动作栏标签栏与动作栏分开.
如果没有空间,操作栏将标签转换为列出导航
但是现在还有一个问题.选项卡未填充标签栏.

编辑 选项卡通过以下方式添加到操作栏:ActionBar.Tab relatieTab = actionBar.newTab().setText("Relaties"); actionBar.addTab(relatieTab);

我们正在构建如上所示的具有Fragments嵌套的App.

我已经实现了标签和地图以及Slider,如上所示.现在我很困惑如何在Slider下添加内容,这将使Details Tab可滚动.
我试过了什么?
在CLicking the Details选项卡上,Fragment将尝试在其中膨胀两个Fragment布局.
AndroidTabLayoutActivity.java
package com.mink7.abs;
import com.viewpagerindicator.CirclePageIndicator;
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
import java.util.Random;
import android.support.v4.app.FragmentTabHost;
import com.viewpagerindicator.PageIndicator;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class AndroidTabLayoutActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// FragmentTabHost tabHost;
setContentView(R.layout.main);
// tabHost = (FragmentTabHost) findViewById(R.id.tabMode);
TabHost tabHost = getTabHost(); …Run Code Online (Sandbox Code Playgroud) 1)我也跟着在Android开发者文档抽屉式导航例如这里
developer.android.com/training/implementing-navigation/nav-drawer.html
和创建我的整个应用程序.在给定的示例中,他们使用Fragments为Drawer中选择的每个项目使用以下代码调用片段
Bundle args = new Bundle();
args.putInt("Title_Number", position);
fragment.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
Run Code Online (Sandbox Code Playgroud)
2)现在我想在Fragment中有一个Tab行为,即,当我在Nav-Drawer中选择一个特定项目时,加载的Fragment应该在顶部显示一个Tab栏,就像这样.http://flic.kr/p/hn4G3i
3)我按照这里给出的教程和例子
developer.android.com/training/implementing-navigation/lateral.html,
但在这里给出的例子是使用FragmentActivity这是不符合片段兼容(按我的知识).
有人可以帮助我在我的应用程序中实现此行为.提前致谢.
我已经通过参考本教程实现了导航抽屉,现在我想要做的是在片段内显示滑动标签.即当我点击导航抽屉中的一个项目时,让我们说第一个项目,它应显示该项目的滑动标签.(我的列表视图中有6个片段.(同样: - A,B,C,D,E, F).我在A Fragment上需要3个可交换的标签.)
如果item1是Events,当我点击它时,它应该显示滑动标签.
但我面临以下问题: -
如何在片段内实现视图寻呼机?
片段可能扩展片段.
当一个片段正在扩展FragmentActivity时,那么在我的主要活动中,代码显示错误,说"类型不匹配",无法从A Fragment转换为片段.
这是我的Deep.java文件
package com.amar.demo;
import info.androidhive.slidingmenu.adapter.NavDrawerListAdapter;
import info.androidhive.slidingmenu.model.NavDrawerItem;
import java.util.ArrayList;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
public class Deep extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
// nav drawer title
private CharSequence mDrawerTitle;
// used to store app title
private …Run Code Online (Sandbox Code Playgroud) android android-sliding android-fragments android-tabs android-navigation
我SlidingTabs用来创建两个选项卡.选项卡的UI应如下所示 -
选择第一个选项卡时

选择第二个选项卡时.

(请注意蓝色矩形的直角)
我使用以下选择器来创建上面显示的UI.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Active tab -->
<item android:state_selected="true" android:state_focused="false"
android:state_pressed="false" android:drawable="@drawable/round_corner_rectangle" />
<!-- Inactive tab -->
<item android:state_selected="false" android:state_focused="false"
android:state_pressed="false" android:drawable="@android:color/transparent" />
<!-- Pressed tab -->
<item android:state_pressed="true" android:state_selected="true" android:drawable="@drawable/round_corner_rectangle" />
<item android:state_pressed="true" android:state_selected="false" android:drawable="@color/transparent" />
<!-- Selected tab (using d-pad) -->
<item android:state_focused="true" android:state_selected="true"
android:state_pressed="false" android:drawable="@android:color/transparent" />
</selector>
Run Code Online (Sandbox Code Playgroud)
round_corner_rectangle代码如下 -
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="5dp"/>
<solid android:color="@color/login_background" />
</shape>
Run Code Online (Sandbox Code Playgroud)
login_background是深蓝色.使用上面的代码,我得到以下 -


我可以当然从中删除corner项目round_corner_rectangle以获得深蓝色背景而不是圆形.如果我将蓝色矩形的右侧笔直,当选择另一个选项卡时,矩形会在错误的一侧倒圆.
我该怎么做才能获得第一张图片中显示的UI?
更新: - …
android android-layout android-tabs android-selector pagerslidingtabstrip
我有一个主要活动navigation drawer和container,navigation drawer具有options.the抽屉选项替换名单container有fragments.当我单击fragtab选项时container加载tab布局fragment,但是当我尝试通过单击相同选项第二次加载它时,它不显示tab内容.
片段xml布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
card_view:cardBackgroundColor="@android:color/white"
card_view:cardCornerRadius="2dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/linearLayout_search"
android:layout_width="match_parent"
android:layout_height="48dp">
<ImageView
android:id="@+id/image_search_back"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:padding="12dp"
android:src="@mipmap/ic_search_black_24dp" />
<EditText
android:id="@+id/edit_text_search"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#fff"
android:gravity="center_vertical"
android:hint="Search"
android:imeOptions="actionSearch"
android:inputType="textCapWords"
android:paddingLeft="12dp"
android:paddingRight="8dp"
android:singleLine="true"
android:textColor="@color/colorAccent"
android:textColorHint="@color/colorAccent" />
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent" …Run Code Online (Sandbox Code Playgroud) android android-viewpager android-tabs material-design android-tablayout
我有一个mainactivity,包括一个带有ViewPager的TabLayout
我添加了3个选项卡,每个选项卡都有单独的片段,其中包含recyclerview,这些recyclerviews有一个复选框,每当我滑动viewpager时我都应该同时更新/刷新(我在共享首选项中保存已检查的位置并通过共享首选项进行更新).
我的问题是每当我检查tab1中的复选框时,tab2没有更新/刷新,直到我向下滚动Recyclerview.和tab3工作正常. 而且我在logcat中也得到了一个奇怪的警告.
03-05 09:35:53.345 4317-4327/com.example.rubin W/art: Suspending all threads took: 6.805ms
03-05 09:35:58.310 4317-4317/com.example.rubin W/FragmentManager: moveToState: Fragment state for Tab3{10a5f1f0 #2 id=0x7f0d00b6} not updated inline; expected state 3 found 2
03-05 09:36:01.363 4317-4317/com.example.rubin W/FragmentManager: moveToState: Fragment state for Tab1{2d9aa887 #1 id=0x7f0d00b6} not updated inline; expected state 3 found 2
Run Code Online (Sandbox Code Playgroud)
我的PagerAdapter
public class PagerAdapter1 extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter1(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) …Run Code Online (Sandbox Code Playgroud) 我有一个带有标签的Android应用.我希望应用程序从右到左.
我在清单文件中放了android:supportsRtl ="true",并将一些元素改为android:layoutDirection ="rtl".
它将所有内容从右向左更改,这是我想要的,除了它反转选项卡中的滑动方向 - 当您向左滑动时,它会移动到左侧选项卡,而不是与滑动相反.我想更改它以使其成为常规滑动.
这是我的代码:
<android.support.v4.widget.DrawerLayout 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"
android:layout_gravity="right"
android:fitsSystemWindows="true"
android:id="@+id/drawer_layout">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layoutDirection="rtl">
<include
android:id="@+id/toolbar"
android:gravity="right"
layout="@layout/toolbar" />
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/main_layout"
android:layout_below="@id/toolbar">
<com.refractored.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:textColor="#ecf0f1"
app:pstsShouldExpand="true"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
tools:context=".MainActivity" />
</LinearLayout>
</RelativeLayout>
<android.support.design.widget.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:id="@+id/nav_view"
android:layoutDirection="rtl"
app:headerLayout="@layout/header"
app:menu="@menu/nav_menu" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
希望您能够帮助我.
谢谢!