使用React-Native,我正在尝试捕获列表视图项上的滑动事件.一切都运作良好,但相对于列表视图项,我很难获取触摸手势的当前坐标.
在我_handlePanResponderMove,我使用以下代码段:
let relativeY = event.nativeEvent.locationY;
不幸的是,我得到的Y坐标是相对于滑动发生的"子视图",而不是相对于列表视图项(正如我所料,因为我将PanResponder附加到列表视图项)
如何获得相对于列表视图父级的手势Y坐标?
我正在开发一个现有的大型Android和iOs项目,我的团队希望采用本机反应.首先,我们希望在RN中实现一个功能,因为我们没有能力立即迁移整个项目.
我成功地添加了一个RN视图,既可以从本地节点服务器也可以从位于assets文件夹中的JS包文件中添加,但感觉有些笨拙.我知道iO支持这一点,但我在文档中找不到与现有Android项目集成的任何内容.以下是我提出的要点:
public class ReactNativeView extends FrameLayout {
private static final String COMPONENT_NAME = "AwesomeProject";
// Path of our RN module relative to project root
private static final String MODULE_NAME = "react-sources/index.android"
public ReactNativeView(Context Context) {
super(context);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
ReactInstanceManager.Builder builder = ReactInstanceManager.builder()
.setApplication(AppDelegate.sharedApplication())
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.BEFORE_RESUME);
if (BuildConfig.USE_RN_LOCAL_SERVER) {
// Set module name to be loaded from local node server
builder.setJSMainModuleName(MODULE_NAME);
} else {
Uri uri = AssetsManager.getInstance().getJsBundleUri();
// Load bundled jsBundle
builder.setJSBundleFile(uri.getPath()); …Run Code Online (Sandbox Code Playgroud) 当我运行我的 Android 应用程序时,我收到以下错误日志:http : //pastebin.com/1jHEfdQ3该应用程序有时会在模拟器中崩溃,但大多数时候它只是显示一个白屏。我可以通过 console.log 记录一两件事,直到应用没有响应。RR 刷新不起作用。所有开发工具都不起作用。我不知道在这一点上该怎么做。
我正在运行 react native 0.38.0
编辑:
我试过清理我的 gradle 并删除并重新安装我的节点模块。
有一点要注意的是,我使用的阵营本地导航,这意味着我不得不修改MainApplication并MainActivity于以下内容:
主要活动:
package com.prayerrequest;
import com.facebook.react.ReactActivity;
import com.reactnativenavigation.NavigationApplication;
import com.airbnb.android.react.maps.MapsPackage;
import com.cmcewen.blurview.BlurViewPackage;
import io.realm.react.RealmReactPackage;
import com.reactnativenavigation.controllers.SplashActivity;
public class MainActivity extends SplashActivity {
}
Run Code Online (Sandbox Code Playgroud)
主要应用:
package com.prayerrequest;
import com.facebook.react.ReactPackage;
import com.cmcewen.blurview.BlurViewPackage;
import io.realm.react.RealmReactPackage;
import com.airbnb.android.react.maps.MapsPackage;
import com.reactnativenavigation.NavigationApplication;
import java.util.Arrays;
import java.util.List;
public class MainApplication extends NavigationApplication {
@Override
public boolean isDebug() {
// Make sure you are using BuildConfig …Run Code Online (Sandbox Code Playgroud) 有没有办法去除微调器下的灰色分隔线?(右下箭头左侧的那个)作为样式应用了某种阴影效果吗?
并定义如下:
<com.actionbarsherlock.internal.widget.IcsSpinner
android:id="@+id/actionbar_settings_more"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
></com.actionbarsherlock.internal.widget.IcsSpinner>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下搜索和替换模板查找大括号写在新行中的所有 if 语句:
搜索模板:
if ($Expr$)
{
$ThenStatements$;
}
else
{
$ElseStatements$;
}
Run Code Online (Sandbox Code Playgroud)
替换模板:
if ($Expr$) {
$ThenStatements$;
}
else {
$ElseStatements$;
}
Run Code Online (Sandbox Code Playgroud)
如果模板引擎不区分两个模板,我面临的问题。它让我可以用正确的模板替换搜索模板,但它也会将“正确”模板检测为错误模板。
有没有办法使用某种正则表达式来解决这个问题?
编辑:在 Android Studio 上工作。我正在尝试为我的公司代码样式约定生成一组 lint 规则,这些规则将显示为警告或错误
intellij-idea inspection code-inspection structural-search android-studio
我有一个Header组件,用作 React Native 中的静态应用栏。现在我正在尝试添加一个StackNavigator更容易管理屏幕之间的转换的功能。
我的问题是我无法将我的Header组件包含在StackNavigator标头中。我当前的代码和结果如下所示:
const APPBAR_HEIGHT = Platform.OS === 'ios' ? 44 : 56;
const GiftNavigator = StackNavigator(
{
All: {
screen: GiftListSection,
navigationOptions: {
tabBarLabel: 'All',
}
},
Reclaim: {
screen: GiftReclaimSection,
navigationOptions: {
tabBarLabel: 'Reclaim',
}
}
}, {
headerMode: 'float',
header: (
<View style={{ height: APPBAR_HEIGHT }}>
<Header />
</View>
)
});
Run Code Online (Sandbox Code Playgroud)
请注意,Header未加载。它只是一个空白区域。如何将我的Header组件加载到StackNavigator标头?如果我加载自己的Header,它会包含默认导航器标题中的后退按钮吗?