说明:
假设我有多个类别来自我的REST.我不知道它有多少类别是5,7或有时2等.我想用viewpager将所有类别放在我的选项卡上.我想根据类别大小创建一个选项卡.让我们看看例如假设在我的REST响应中只有2个类别它只创建两个选项卡.如果它有5个类别,那么5个标签,依此类推.
以下是创建选项卡的示例测试示例.
MainActivity.java
public class MainActivity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar=(Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
tabLayout=(TabLayout)findViewById(R.id.tabs);
viewPager=(ViewPager)findViewById(R.id.viewpager);
setupViewPager(viewPager);
viewPager.setCurrentItem(0);
tabLayout.setupWithViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
for(int i=0;i<3;i++){
adapter.addFragment(new OneFragment(), "ONE");
// adapter.addFragment(new TwoFragment(), "TWO");
viewPager.setAdapter(adapter);
}
}
}
Run Code Online (Sandbox Code Playgroud)
ViewPagerAdapter.java
public class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager){
super(manager); …
Run Code Online (Sandbox Code Playgroud) 说明:我想在 react native 中使用标签显示图像。我在我的 src 目录中放置了一个图像,并在我的标签中从中加载本地图像。它工作正常。
问题
如果我们将此结构与我们的 android drawable 目录进行比较,那么我有一些疑问。
在android中,有五个drawable目录。下面列出了五个不同的可绘制目录:
drawable-mdpi drawable-hdpi drawable-xhdpi drawable-xxhdpi drawable-xxxhpi
在所有目录中,图像文件都具有相同的名称。根据设备密度,它使用了我们放入 drawable 目录中的资源。
题
我的问题是我们是否使用 react native 创建应用程序。为了满足不同密度设备的需求,drawable 目录的结构是什么?
说明:我正在使用android中的react native。我从登录屏幕开始,并使用API成功调用将参数传递到另一个屏幕。我使用StackNavigation来导航屏幕。成功登录后,它将移动到带有参数的另一个屏幕。
问题: API调用成功,但导航屏幕未更改。触发未定义之类的错误不是函数(评估'_this.props.navigator('SecondScreen')')
我已经将所有代码张贴在这里。
index.android.js //这是应用程序的入口点。它将校准第一个App.js。
/**
* Sample React Native App
* https://github.com/facebook/react-native
* @flow
*/
import React,{Component} from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View
} from 'react-native';
import App from './src/components/App';
import SecondScreen from './src/components/SecondScreen';
import {StackNavigator} from 'react-navigation';
export default class reactNavigationSample extends Component{
render(){
const {navigation} =this.props;
return(
<App navigation ={navigation}/>
);
}
}
const SampleApp = StackNavigator({
Home:{screen:App},
SecondScreen:{screen: SecondScreen}
});
AppRegistry.registerComponent('AwesomeProject', () => SampleApp);
Run Code Online (Sandbox Code Playgroud)
App.js
//此文件的UI是两个TextInput和Button。当我单击按钮时,它将调用登录方法,并且登录方法将使用可能的登录API凭据调用API。成功登录后,它应移至另一个屏幕。
export default class App extends …
Run Code Online (Sandbox Code Playgroud) 我ExpandableListView
在android中创建了一个。我有一些类别,其中还有更多子类别。而其他则没有子类别。如果图标没有子类别,如何删除它?
例如,我有一个类别,如“主页”、“纱丽”等。在“主页”中,没有子类别,因此我需要删除可展开的展开图标。
这是我的content_home.xml
,它有一个ExpandableListView
<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.domore.onlineangelnx.Home"
tools:showIn="@layout/activity_home">
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Listview to display slider menu -->
<ExpandableListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background"/>
<!--android:choiceMode="singleChoice"-->
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的drawable_list_item.xml
,有一个TextView
显示ExpandableListView
标题
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/list_item_title"
android:gravity="center_vertical" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的ExpandableListViewAdapter
,它计算项目及其子项目
package adapter;
import android.content.Context;
import android.graphics.Typeface;
import …
Run Code Online (Sandbox Code Playgroud) 说明:我想在工具栏上应用渐变.我已经做了.我在style.xml中的应用程序主题上应用了这个渐变.
这是我的style.xml
<resources>
<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">
</style>
<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@drawable/toolbar_gradient</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="MyMaterialTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="MyMaterialTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse">
<item name="android:textSize">16sp</item>
<item name="android:textAllCaps">true</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
这是我的gradient.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:type="linear"
android:startColor="@color/upper"
android:endColor="@color/bottom"
android:angle="270"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
这是我的color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="main_background">#FFFFFF</color>
<!--009788 26A69A-->
<color name="colorPrimary">#009788</color>
<color name="colorPrimaryDark">#E53935</color><!--00695C-->
<color name="dull_color">#26A69A</color>
<color name="colorAccent">#3F51B5</color>
<color name="textColorPrimary">#FFFFFF</color>`
<color name="txtColor">#000000</color>
<color name="windowBackground">#FFFFFF</color>
<color name="navigationBarColor">#000000</color>
<color name="counter_text_bg">#f32f32</color>
<color name="list_background">#FFFFFF</color> …
Run Code Online (Sandbox Code Playgroud)