我正在 android 中创建一个带有导航视图的 tabLayout。我想为选项卡布局的选项卡设置图标。当我使用 setIcon 函数时,应用程序抛出空指针异常并崩溃。请帮我。
public class navHomeActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private TabLayout tabLayout;
private ViewPager viewPager;
int icons[] = {
R.drawable.icon1,
R.drawable.icon2,
R.drawable.icon3};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nav_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewPager = (ViewPager) findViewById(R.id.homeViewPager);
setupViewPager(viewPager);
setupTabIcons();
tabLayout = (TabLayout) findViewById(R.id.tabHomeLayout);
tabLayout.setupWithViewPager(viewPager);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
private void setupTabIcons() { …Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Android 应用程序,它有 4 个标签和 4 个片段。我已经在我的 Android 设备上运行了该应用程序。但是我遇到的问题是,当我单击前 2 个选项卡时,它工作正常,但是当我打开第 3 个和第 4 个选项卡时,应用程序立即崩溃!
一开始我以为是第3和第4个片段有bug,后来发现这不是第3个或第4个片段的bug。我用第3和第4个片段替换第1和第2个片段,用第3和第4个片段替换第1和第2个片段。同样的事情仍然发生了!
这是我的 main_activity.java。
public class Main_activity extends AppCompatActivity {
@Bind(R.id.main_activity)
View mView;
private int[] tabIcons = {
R.drawable.friend_chat,
R.drawable.call,
R.drawable.tab_contact,
R.drawable.profile
};
private TabLayout tabLayout;
private FragmentManager mFragmentManager;
private FragmentTransaction mFragmentTransaction;
private NonSwipeableViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mFragmentManager = getSupportFragmentManager();
mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.viewpager, new ConversationsFragment()).commit();
viewPager = (NonSwipeableViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) …Run Code Online (Sandbox Code Playgroud) 我目前有这个标签视图,我在本教程中遵循了这个视图.一切正常,直到我注意到onCreateView没有在任何标签上调用.我在这里和那里寻找解决方案,但我仍然无法解决.这是我的代码:
activity_pref_main_container.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/main_layout"
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"
tools:context=".PrefActivityMain">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="?attr/colorPrimary"
android:elevation="6dp"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:background="?attr/colorPrimary"
android:elevation="6dp"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_below="@id/tab_layout"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
PrefMainActivity.class
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pref_main_container);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle(R.string.preference_title);
setSupportActionBar(toolbar);
new PrefActivityListAsync(this,this,specialization).execute();
new PrefActivityListAsync(this,this,position).execute();
new PrefActivityListAsync(this,this,type).execute();
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setText("Specialization"));
tabLayout.addTab(tabLayout.newTab().setText("Position"));
tabLayout.addTab(tabLayout.newTab().setText("Type"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final ViewPager viewPager = (ViewPager) …Run Code Online (Sandbox Code Playgroud) android android-fragments android-tablayout fragment-oncreateview
在此图片中,在tablayout中,选定的tabbar下划线颜色为紫色和文本.
我搜索未选中的tabbar,但我找不到未选中的tabbar下划线.
我想在选择某个标签时更改颜色,更改未选中的标签栏下划线颜色.
如果你知道这件事,你能帮助我吗?
嗨,我正在创建一个使用 aButton内部的应用程序Fragment,因此当我单击该应用程序时Button,该Button 将生成一个 Toast 文本,我Button改为使用单击侦听器。但问题是我Button没有响应点击,当我点击它时没有响应,Button所以我对它感到压力。这是我的主要问题的代码:
test = (Button) findViewById(R.id.button2);
t_layout = (TabLayout) findViewById(R.id.tabs);
t_layout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
Fragment fragment;
String contain = tab.getText().toString();
if(contain.equals("POWER")){
fragment = new power_fragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment2, fragment);
ft.commit();
test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(),"Test on",Toast.LENGTH_SHORT).show();
}
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
我正在使用 Tabitems,因此当我单击“POWER”的 Tabitem 时,Fragment将更改为包含 …
android android-fragments android-fragmentactivity android-studio android-tablayout
我知道这个问题可能看起来重复,但我找不到解决我的问题的好方法。我将tablayout与 viewpager 一起使用,fragmentPagerAdapter作为 viewpager 的适配器。如您所知,viewpager不支持 rtl 布局,因此我在 rtl 语言环境中遇到了问题。我希望标签从右侧开始(第一个标签贴在屏幕右侧)并且用户可以正确滑动。我怎样才能做到这一点?有什么帮助吗?
一切工作正常,此代码我从没有任何问题。但是以某种方式,当我尝试接收不在第一个位置的Tab时,现在得到一个空对象:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'android.support.design.widget.TabLayout $ Tab android.support.design.widget.TabLayout $ Tab.setCustomView(android.view.View)'
在onCreateView中调用tabLayoutSetup。
private void tabLayoutSetup(){
// Get the ViewPager and set it's PagerAdapter so that it can display items
Bugger.t(context,"tablayout");
viewPager.setAdapter(pagerAdapter);
// Give the TabLayout the ViewPager
tabLayout.setupWithViewPager(viewPager);
createTabs();
}
//this method is creating all tabs for account's tablayout
private void createTabs(){
TabLayout.Tab ShareTab = tabLayout.getTabAt(0);
TabLayout.Tab MarkTab = tabLayout.getTabAt(1);
//***********************************************************************************************************
//inflating template for first tab, Activities.
View TabView = LayoutInflater.from(context).inflate(R.layout.account_tablayout_customtab, null); //template
TextView titel = (TextView) TabView.findViewById(R.id.tab_titel);
//populating first template for 'Activities'
titel.setText(getResources().getString(R.string.SharesTab)); …Run Code Online (Sandbox Code Playgroud) android nullpointerexception android-layout android-fragments android-tablayout
我正在使用圆形背景和圆形标签指示器设计 TabLayout。在下面的图片链接中,可以看到我的白色标签周围有某种填充。如何摆脱填充并完全填充选项卡?
我附上了我的选项卡布局的代码。我的背景和 tabIndicator 绘图是在草图中设计的 - 尺寸与下面的“预期结果”完全相同。
<com.google.android.material.tabs.TabLayout
android:id="@+id/newgroup_tabs"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_marginTop="22dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:background="@drawable/newgroup_tabbg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvnewgroups_title"
app:tabGravity="fill"
app:tabInlineLabel="true"
app:tabIndicator="@drawable/newgroup_tabindicatorwide"
app:tabIndicatorColor="@color/white"
app:tabIndicatorFullWidth="true"
app:tabIndicatorGravity="center"
app:tabIndicatorHeight="54dp"
app:tabMode="fixed"
app:tabTextColor="@color/black" />
Run Code Online (Sandbox Code Playgroud)
我的预期结果应该是这样的,https://ibb.co/XYZ2jkS
但我实际得到的是这个,https://ibb.co/Lz1C0Fy。
如何让我的设计看起来像预期的图像?任何帮助将不胜感激,谢谢!
android android-layout android-tablayout material-components material-components-android
在布局中显示此类型的选项卡
我尝试了但没有得到正确的输出
我的代码在这里
private int[] imageList= {R.drawable.icon_category,R.drawable.icon_newest};
tabLayout=(TabLayout)findViewById(R.id.tabs);
tabLayout.addTab(tabLayout.newTab().setText(""));
tabLayout.addTab(tabLayout.newTab().setText(""));
for (int i = 0; i < imageList.length; i++) {
tabLayout.getTabAt(i).setIcon(imageList[i]);
}
Run Code Online (Sandbox Code Playgroud) 我想将选择器(粉红色线)滚动到下一个选项卡(on-fillup).我的片段正在滚动,但选择器无法滚动.有人可以帮忙吗?
MainActivity.java
//Adding the tabs using addTab() method
tabLayout.addTab(tabLayout.newTab().setText("On Reserved"));
tabLayout.addTab(tabLayout.newTab().setText("On Fill-up"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
Run Code Online (Sandbox Code Playgroud)
activity_main.java
<!-- our tablayout to display tabs -->
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
<!-- View pager to swipe views -->
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="fill_parent"></android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud) 我正在使用tabLayout我的应用中的标签。我想更改所选标签的背景颜色和文本颜色。我正在tabLayout通过这样做来更改整个背景的颜色
android:background="@color/colorAccent"
Run Code Online (Sandbox Code Playgroud)
并更改textcolor和selectedtextcolor
app:tabTextColor="#000000"
app:tabSelectedTextColor="@color/colorAccent"
Run Code Online (Sandbox Code Playgroud)
但是我现在要做的就是在选中该特定选项卡时更改其背景颜色?怎么做 ?提前致谢 :)